Правильно ли использовать тег alt для ссылки?
Правильно ли использовать тег alt для ссылки-ссылки, что-то вроде
<a href="#" class="test" alt="Something" src="sfasfs" ></a>
6 ответов
На такие вещи лучше всего ответить, посмотрев на официальную спецификацию:
перейти к спецификации: https://www.w3.org/TR/html5/
ищи "
a
элемент ": https://www.w3.org/TR/html5/text-level-semantics.htmlустановите флажок "Атрибуты содержимого", в котором перечислены все разрешенные атрибуты для
a
элемент:- Глобальные атрибуты
href
target
download
rel
hreflang
type
проверьте связанные "Глобальные атрибуты": https://www.w3.org/TR/html5/dom.html
Как вы увидите, alt
атрибут не допускается на a
элемент.
Также вы заметите, что src
атрибут также не разрешен.
Проверяя ваш HTML, вам сообщают об ошибках, подобных этим.
Обратите внимание, что приведенное выше относится к HTML5, который является стандартом HTML W3C от 2014 года. В 2016 году HTML 5.1 стал следующим стандартом HTML. Поиск разрешенных атрибутов работает аналогичным образом. Вы увидите, что a
Элемент может иметь другой атрибут в HTML 5.1: rev
,
Вы можете найти все спецификации HTML (включая последний стандарт) в текущем статусе HTML W3C.
Для якорей вы должны использовать заголовок. alt не является допустимым атрибутом. Смотрите http://w3schools.com/tags/tag_a.asp
"title" широко реализован в браузерах. Пытаться:
<a href="#" title="hello">asf</a>
Вы должны использовать атрибут title для тегов привязки, если вы хотите применить описательную информацию так же, как и для атрибута alt. Атрибут title действителен для тегов привязки и служит только для предоставления информации о связанной странице.
W3C рекомендует, чтобы значение атрибута title совпадало со значением заголовка связанного документа, но это не обязательно.
http://www.w3.org/MarkUp/1995-archive/Elements/A.html
В качестве альтернативы, и, вероятно, будет более полезным, вы можете использовать атрибут доступности ARIA aria-label
(не путать с aria-labeledby
). aria-label
выполняет ту же функцию, что и атрибут alt для изображений, но не для элементов изображения, и включает некоторую меру оптимизации, так как вы оптимизируете программы для чтения с экрана.
http://www.w3.org/WAI/GL/wiki/Using_aria-label_to_provide_labels_for_objects
Если вы хотите описать тег привязки, обычно целесообразно использовать тег rel или rev, но вы ограничены определенными значениями, их не следует использовать для описания, понятного человеку.
Rel служит для описания отношения связанной страницы к текущей странице. (например, если связанная страница является следующей в логической серии, это будет rel=next)
Атрибут rev по сути является обратной зависимостью атрибута rel. Rev описывает отношение текущей страницы к связанной странице.
Вы можете найти список допустимых значений здесь: http://microformats.org/wiki/existing-rel-values
Я использовал название, и это сработало!
Атрибут title дает заголовок ссылки. За одним исключением, это чисто консультативный. Значение текста. Исключение составляют ссылки на таблицы стилей, где атрибут title определяет альтернативные наборы таблиц стилей.
<a class="navbar-brand" href="http://www.alberghierocastelnuovocilento.gov.it/sito/index.php" title="sito dell'Istituto Ancel Keys">A.K.</a>
Нет alt
атрибут (это будет атрибут, а не тег) не разрешен для a
элемент в любой спецификации HTML или черновик. И ни один браузер, похоже, не признает, что он имеет какое-либо значение.
Тогда немного загадочно, почему люди пытаются использовать его, но вероятное объяснение состоит в том, что они делают это по аналогии с alt
атрибут для img
элементы, ожидающие увидеть "подсказку" при наведении мыши. Есть две вещи не так с этим. Во-первых, каждый элемент имеет свои атрибуты, определенные в спецификациях для каждого элемента. Во-вторых, рендеринг "всплывающей подсказки" alt
атрибуты в некоторых древних браузерах - это / было причудой или даже ошибкой, а не чем-то ожидаемым; alt
атрибут должен быть представлен пользователю тогда и только тогда, когда само изображение по какой-либо причине не представлено.
Чтобы создать "всплывающую подсказку", используйте title
вместо этого используйте атрибут или, что гораздо лучше, Google для "подсказок CSS" и используйте подсказки на основе CSS по своему усмотрению (их можно охарактеризовать как скрытые "слои", которые становятся видимыми при наведении курсора мыши).
Я удивлен, увидев все ответы, в которых говорится об использовании alt
атрибут в a
тег недействителен. Это абсолютно неверно.
Html не блокирует использование каких-либо атрибутов:
<a your-custom-attribute="value">Any attribute can be used</a>
Если вы спросите, правильно ли семантически использовать alt
атрибут в a
тогда я скажу:
Нет. Используется для задания описания изображения<img alt="image description" />
.
Вопрос в том, что вы будете делать с атрибутами. Вот пример:
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>
Опять же, если вы спросите, семантически правильно ли использовать настраиваемый атрибут, я скажу:
Нет. Использование data-*
атрибуты для его семантического использования.
Ой, вопрос был задан в 2013 году.