Sử dụng thẻ alt cho một liên kết cố định có đúng không, đại loại như
<a href="#" class="test" alt="Something" src="sfasfs" ></a>
Sử dụng thẻ alt cho một liên kết cố định có đúng không, đại loại như
<a href="#" class="test" alt="Something" src="sfasfs" ></a>
Câu trả lời:
Những điều như vậy được giải đáp tốt nhất bằng cách xem thông số kỹ thuật chính thức:
chuyển đến thông số kỹ thuật: https://www.w3.org/TR/html5/
tìm kiếm " a
phần tử": https://www.w3.org/TR/html5/text-level-semantics.html#the-a-element
kiểm tra "Thuộc tính nội dung", liệt kê tất cả các thuộc tính được phép cho a
phần tử:
- Thuộc tính toàn cầu
href
target
download
rel
hreflang
type
kiểm tra "Thuộc tính chung" được liên kết: https://www.w3.org/TR/html5/dom.html#global-attributes
Như bạn sẽ thấy, alt
thuộc tính không được phép trên a
phần tử.
Ngoài ra, bạn sẽ nhận thấy rằng src
thuộc tính này cũng không được phép.
Bằng cách xác thực HTML của bạn , các lỗi như thế này sẽ được báo cáo cho bạn.
Lưu ý rằng phần trên là dành cho HTML5 , là tiêu chuẩn HTML của W3C từ năm 2014 . Vào năm 2016, HTML 5.1 đã trở thành tiêu chuẩn HTML tiếp theo . Tìm các thuộc tính được phép hoạt động theo cách tương tự. Bạn sẽ thấy rằng các a
phần tử có thể có thuộc tính khác trong HTML 5.1: rev
.
Bạn có thể tìm thấy tất cả các thông số kỹ thuật HTML (bao gồm cả tiêu chuẩn mới nhất) trên Trạng thái hiện tại HTML của W3C .
title
.
Đối với neo, bạn nên sử dụng tiêu đề thay thế. alt không phải là thuộc tính hợp lệ của a. Xem http://w3schools.com/tags/tag_a.asp
"title" được triển khai rộng rãi trong các trình duyệt. Thử:
<a href="#" title="hello">asf</a>
title
không chính xác theo đặc tả HTML5 (mặc dù hầu hết các trình duyệt sẽ triển khai nó).
Không, một alt
thuộc tính (nó sẽ là một thuộc tính, không phải một thẻ) không được phép đối với một a
phần tử trong bất kỳ bản nháp hoặc đặc tả HTML nào. Và nó dường như không được bất kỳ trình duyệt nào công nhận là có bất kỳ ý nghĩa nào.
Có một chút bí ẩn tại sao mọi người cố gắng sử dụng nó, nhưng lời giải thích có thể xảy ra là họ đang làm như vậy tương tự với alt
thuộc tính cho img
các phần tử, mong đợi thấy một "chú giải công cụ" khi di chuột qua. Có hai điều sai với điều này. Đầu tiên, mỗi phần tử có các thuộc tính của riêng nó, được xác định trong thông số kỹ thuật cho mỗi phần tử. Thứ hai, hiển thị "chú giải công cụ" củaalt
thuộc tính trong một số trình duyệt cổ đại là / là một điều kỳ quặc hoặc thậm chí là một lỗi, chứ không phải là một cái gì đó được mong đợi; các alt
thuộc tính là nghĩa vụ phải được trình bày cho người dùng khi và chỉ khi hình ảnh bản thân là không được trình bày, vì lý do gì.
Để tạo “chú giải công cụ”, hãy sử dụng title
thuộc tính này thay thế hoặc tốt hơn là Google cho "chú giải công cụ CSS" và sử dụng chú giải công cụ dựa trên CSS tùy theo sở thích của bạn (chúng có thể được mô tả là "lớp" ẩn có thể nhìn thấy khi di chuột qua).
Bạn nên sử dụng thuộc tính tiêu đề cho các thẻ liên kết nếu bạn muốn áp dụng thông tin mô tả tương tự như đối với thuộc tính alt. Thuộc tính tiêu đề hợp lệ trên các thẻ liên kết và không phục vụ mục đích nào khác ngoài việc cung cấp thông tin về trang được liên kết.
W3C khuyến nghị rằng giá trị của thuộc tính title phải khớp với giá trị của tiêu đề của tài liệu được liên kết nhưng nó không bắt buộc.
http://www.w3.org/MarkUp/1995-archive/Elements/A.html
Ngoài ra, và có thể có lợi hơn, bạn có thể sử dụng thuộc tính trợ năng ARIA aria-label
(không nên nhầm lẫn với aria-labeledby
). aria-label
phục vụ chức năng tương tự như thuộc tính alt đối với hình ảnh nhưng đối với các phần tử không phải hình ảnh và bao gồm một số biện pháp tối ưu hóa kể từ khi bạn tối ưu hóa cho trình đọc màn hình.
http://www.w3.org/WAI/GL/wiki/Using_aria-label_to_provide_labels_for_objects
Mặc dù vậy, nếu bạn muốn mô tả một thẻ liên kết, thường thích hợp sử dụng thẻ rel hoặc rev nhưng giới hạn của bạn đối với các giá trị cụ thể, chúng không nên được sử dụng cho các mô tả có thể đọc được.
Rel dùng để mô tả mối quan hệ của trang được liên kết với trang hiện tại. (ví dụ: nếu trang được liên kết nằm tiếp theo trong một chuỗi logic thì nó sẽ là rel = next)
Thuộc tính rev thực chất là mối quan hệ ngược lại của thuộc tính rel. Rev mô tả mối quan hệ của trang hiện tại với trang được liên kết.
Bạn có thể tìm thấy danh sách các giá trị hợp lệ tại đây: http://microformats.org/wiki/existing-rel-values
Tôi đã sử dụng tiêu đề và nó đã hoạt động!
Thuộc tính title cho tiêu đề của liên kết. Với một ngoại lệ, nó hoàn toàn là tư vấn. Giá trị là văn bản. Ngoại lệ dành cho các liên kết trang định kiểu, trong đó thuộc tính tiêu đề xác định các tập hợp trang định kiểu thay thế.
<a class="navbar-brand" href="http://www.alberghierocastelnuovocilento.gov.it/sito/index.php" title="sito dell'Istituto Ancel Keys">A.K.</a>
Tôi ngạc nhiên khi thấy tất cả các câu trả lời cho biết việc sử dụng alt
thuộc tính trong a
thẻ là không hợp lệ . Điều này là hoàn toàn sai lầm.
Html không chặn bạn bằng bất kỳ thuộc tính nào:
<a your-custom-attribute="value">Any attribute can be used</a>
Nếu bạn hỏi liệu việc sử dụng alt
thuộc tính trong a
đó có đúng về mặt ngữ nghĩa hay không thì tôi sẽ nói:
KHÔNG. Nó được sử dụng để thiết lập mô tả hình ảnh <img alt="image description" />
.
Đó là vấn đề bạn sẽ làm gì với các thuộc tính. Đây là một ví dụ:
a::after {
content: attr(color); /* attr can be used as content */
display: block;
color: white;
background-color: blue;
background-color: attr(color); /* This won't work */
display: none;
}
a:hover::after {
display: block;
}
[hidden] {
display: none;
}
<a href="#" color="red">Hover me!</a>
<a href="#" color="red" hidden>In some cases, it can be used to hide it!</a>
Một lần nữa, nếu bạn hỏi liệu việc sử dụng thuộc tính tùy chỉnh có đúng về mặt ngữ nghĩa hay không thì tôi sẽ nói:
Không. Sử dụng data-*
các thuộc tính cho việc sử dụng ngữ nghĩa của nó.
Rất tiếc, câu hỏi đã được đặt ra vào năm 2013.
title
thuộc tính trong thuộc tínha
Toàn cục. Sử dụngtitle
thuộc tính đó trong thuộc tính có đúnga
hay không?