Чи правильно використовувати тег alt для прив'язки?


124

Чи правильно використовувати тег alt для прив’язного посилання, щось подібне

<a href="#" class="test" alt="Something" src="sfasfs" ></a>

Відповіді:


130

На такі речі найкраще відповісти, переглянувши офіційну специфікацію:

  1. перейдіть до специфікації: https://www.w3.org/TR/html5/

  2. пошук " aелемента": https://www.w3.org/TR/html5/text-level-semantics.html#the-a-element

  3. встановіть прапорець "Атрибути вмісту", у якому перераховані всі дозволені атрибути для aелемента:

    • Глобальні атрибути
    • href
    • target
    • download
    • rel
    • hreflang
    • type
  4. перевірте пов'язані "Глобальні атрибути": https://www.w3.org/TR/html5/dom.html#global-attributes

Як ви побачите, altатрибут заборонений у aелементі.
Також ви помітили, що srcатрибут також не дозволений.

При перевірці вашого HTML , помилки , як вони повідомляють вам.


Зауважте, що вищезазначене стосується HTML5 , що є стандартом HTML W3C з 2014 року . У 2016 році HTML 5.1 став наступним стандартом HTML . Пошук дозволених атрибутів працює аналогічно. Ви побачите, що aелемент може мати інший атрибут у HTML 5.1:rev .

Ви можете знайти всі специфікації HTML (включаючи останній стандарт) у поточному статусі HTML W3C .


2
Я не бачу titleатрибут у атрибутах aGlobal, чи правильно використовувати такий titleатрибут у aчи ні?
Юсеф Алтаф

1
@YousefAltaf: На яку сторінку ви шукаєте? Пов'язаний один, Глобальні атрибути , списки title.
unor

Я отримав це так, що він вказаний під атрибутами Global, але чи впливає він на якість сторінки, використовую я її чи ні?
Юсеф Альтаф

@YousefAltaf: Це інше питання, яке краще не обговорювати тут. Зверніться до його визначення . Якщо ви все ще маєте запитання щодо нього, сміливо створіть окреме запитання (але краще шукайте раніше, якщо його вже не задавали).
unor

4
Відповідь на закладці як "Як шукати атрибути HTML". Дякую.
кодування

59

Для якорів слід використовувати замість заголовка. alt недійсний атрибут a. Дивіться http://w3schools.com/tags/tag_a.asp


@FabioPoloni Дякую, я очікував, що кожен може знайти посилання нижче на сторінці :-)
tomis

Я думав, що хтось не знає багато про цю тему, він не знайде її ;-)
Фабіо Полоні

8
Ця інформація є правильною у w3schools, але w3schools не є офіційною і не є надійною, дивіться w3fools.com
Jukka K. Korpela

THX Хлопці ... окрім цього моя потреба ґрунтувалася виключно на стандартах доступності, а також на запереченні вищих витрат. Я використав зображення spirte, в той же час хотів надати атрибут alt, який не міг зробити за допомогою фонових зображень. Натомість у мене є вирішення, яке допомогло ..
user2067736

1
"title" більше не є у w3schools. Але ви можете використовувати заголовок, оскільки це глобальний атрибут: w3.org/TR/html5/dom.html#global-attributes
rosell.dk

28

"title" широко реалізується в браузерах. Спробуйте:

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

3
Ось як має виглядати відповідь замість відповіді на 10 хвилин вище. Але на цю відповідь також має бути посилання: w3schools.com/tags/att_global_title.asp
mikael1000

Я погоджуюся, що вищезазначене не дає відповіді на питання, однак згідно з ним, titleневірно відповідно до специфікації HTML5 (навіть якщо більшість браузерів буде реалізовувати це).
Felwithe

6

Ні, altатрибут (це був би атрибут, а не тег) не дозволений для aелемента в жодних специфікаціях або чернетках HTML. І, схоже, жоден браузер не визнається таким, що має якесь значення.

Це трохи таємниця, чому люди намагаються його використовувати, але ймовірне пояснення полягає в тому, що вони роблять це аналогічно altатрибуту дляimg елементів, розраховуючи побачити підказку під час миші. У цьому є дві речі неправильно. По-перше, кожен елемент має свої атрибути, визначені у специфікаціях для кожного елемента. По-друге, відображення altатрибутів "підказок" у деяких стародавніх браузерах - це / химерність чи навіть помилка, а не щось, чого можна очікувати; altатрибут повинен бути представлений користувачеві , якщо і тільки якщо зображення не представлено, з якої - небудь причини.

Щоб створити "підказку", використовуйте titleзамість цього атрибут або, ще краще, Google для "підказки CSS" і використовуйте підказки на основі CSS за вашим уподобанням (їх можна охарактеризувати як приховані "шари", які стають видимими при переході миші).


Як я можу використовувати посилання, створені програмно, використовуючи підказки на основі CSS?
Сальвадор Валенсія

6

Ви повинні використовувати атрибут title для тегів прив’язки, якщо ви хочете застосувати описову інформацію так само, як і для атрибута alt. Атрибут заголовка дійсний на якорних тегах і не виконує іншої мети, крім надання інформації про пов’язану сторінку.

W3C рекомендує, щоб значення атрибута заголовка відповідало значенню заголовка пов'язаного документа, але це не є обов'язковим.

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


5

Я використав заголовок, і це спрацювало!

Атрибут title дає назву посилання. За одним винятком, це суто дорадчий характер. Значення - текст. Виняток становить посилання на аркуші стилів, де атрибут заголовка визначає альтернативні набори аркушів стилів.

<a class="navbar-brand" href="http://www.alberghierocastelnuovocilento.gov.it/sito/index.php" title="sito dell'Istituto Ancel Keys">A.K.</a>

1

Я здивований, коли всі відповіді, що вказують на використання 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 році.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.