Sử dụng thẻ alt cho một liên kết cố định có đúng không?


124

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:


130

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:

  1. chuyển đến thông số kỹ thuật: https://www.w3.org/TR/html5/

  2. tìm kiếm " aphần tử": https://www.w3.org/TR/html5/text-level-semantics.html#the-a-element

  3. 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 aphần tử:

    • Thuộc tính toàn cầu
    • href
    • target
    • download
    • rel
    • hreflang
    • type
  4. 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, altthuộc tính không được phép trên aphần tử.
Ngoài ra, bạn sẽ nhận thấy rằng srcthuộ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 aphầ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 .


2
Tôi không thấy titlethuộc tính trong thuộc tính aToàn cục. Sử dụng titlethuộc tính đó trong thuộc tính có đúng ahay không?
Yousef Altaf

1
@YousefAltaf: Bạn xem trang nào? Danh sách các thuộc tính toàn cầu , được liên kết title.
unor

Tôi đã hiểu nên nó được liệt kê trong thuộc tính Toàn cầu, nhưng nó có ảnh hưởng đến chất lượng trang nếu tôi sử dụng hay không?
Yousef Altaf

@YousefAltaf: Đó là một câu hỏi khác, tốt hơn là không nên thảo luận ở đây. Tham khảo định nghĩa của nó . Nếu bạn vẫn còn thắc mắc về vấn đề này, hãy tạo một câu hỏi riêng (nhưng tốt hơn nên tìm kiếm trước nếu câu hỏi đó chưa được hỏi).
unor

4
Câu trả lời được đánh dấu là "Cách tra cứu thuộc tính HTML". Cảm ơn.
Viết mã

59

Đố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


@FabioPoloni Cảm ơn, tôi đã mong rằng mọi người có thể tìm thấy liên kết dưới đây trên trang :-)
tomis

Tôi nghĩ nếu ai đó không biết nhiều về chủ đề này, ông sẽ không tìm thấy nó ;-)
Fabio Poloni

8
Đoạn thông tin sẽ xảy ra là chính xác tại W3Schools, nhưng w3schools là không chính thức và nó không phải là đáng tin cậy, xem w3fools.com
Jukka K. Korpela

thx Guys ... ngoài điều đó ra, nhu cầu của tôi hoàn toàn dựa trên các tiêu chuẩn về khả năng tiếp cận cũng như phủ định chi phí hiệu suất. Tôi đã sử dụng hình ảnh spirte, đồng thời muốn cung cấp thuộc tính alt, điều này không thể thực hiện bằng cách sử dụng hình ảnh nền. Thay vào đó tôi có một cách giải quyết đó đã giúp ..
user2067736

1
"title" là btw không có trên w3schools nữa. Nhưng bạn có thể sử dụng tiêu đề, vì nó là thuộc tính toàn cục: w3.org/TR/html5/dom.html#global-attributes
rosell.dk

28

"title" được triển khai rộng rãi trong các trình duyệt. Thử:

<a href="#" title="hello">asf</a>

3
Đây là cách một câu trả lời sẽ trông như thế nào thay vì câu trả lời 10 phút ở trên. Nhưng câu trả lời này cũng phải có liên kết: w3schools.com/tags/att_global_title.asp
mikael1000

Tôi đồng ý rằng điều trên không trả lời câu hỏi, tuy nhiên theo nó, titlekhô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ó).
felwithe

6

Không, một altthuộ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 aphầ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 altthuộc tính cho imgcá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 altthuộ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 titlethuộ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).


Làm cách nào để sử dụng các liên kết được tạo theo chương trình bằng cách sử dụng chú giải công cụ dựa trên CSS?
Salvador Valencia

6

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-labelphụ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


5

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>

1

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 altthuộc tính trong athẻ 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 altthuộ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.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.