HTML тег img: атрибут title против атрибута alt? - PullRequest
97 голосов
/ 16 мая 2009

Я просматривал Amazon и заметил, что при поиске " 1TB ", если вы наведете курсор мыши на изображение рейтинга звезд, вы увидите только результат при использовании IE. Если вы используете другой браузер, результат не будет отображаться.

Рейтинг 3,8 и рейтинг 4,2 отображаются как 4 звезды. Конечно, 3,8 звезды против 4,2 звезды (76% против 84%) могут иметь значение!

Это связано с тем, что стандартный способ отображения текста alt заключается только в том, что пользователь отключает графику или когда браузер «считывает» (например, браузер для пользователей с нарушениями зрения). IE, однако, показывает его при наведении.

Так что я думаю, что если Amazon должен показывать это независимо от браузера пользователя, тогда следует использовать title в дополнение к alt. Вы бы согласились?

Ответы [ 11 ]

149 голосов
/ 16 мая 2009

Они используются для разных вещей. Атрибут alt используется вместо изображения. Если изображение не может быть показано, или (я верю) в средствах чтения с экрана.

Атрибут title отображается вместе с вместе с изображением, обычно в виде всплывающей подсказки.

Один не должен использоваться «вместо» другого. Каждый должен использоваться правильно , чтобы делать то, для чего он предназначен.

58 голосов
/ 16 мая 2009

Я бы пошел на оба. Заголовок покажет хорошую подсказку во всех браузерах, а alt даст описание при просмотре в браузере без изображений.

Тем не менее, я хотел бы увидеть некоторые статистические данные о том, сколько "серферов" ходят в "магазин", чтобы просмотреть товары, на самом деле изображения отключены или используют браузер, который не поддерживает изображения. Я думаю, что дни, когда 90% населения используют модем 28 КБ для подключения к InterWeb, давно прошли.

10 голосов
/ 17 мая 2009

alt и title для разных вещей, как уже упоминалось. Хотя атрибут title будет содержать всплывающую подсказку, alt также является важным атрибутом, поскольку он определяет текст, который будет отображаться, если изображение не может быть отображено. (И в некоторых браузерах, таких как Firefox, вы также увидите этот текст , в то время как изображение загружается)

Еще один момент, который, по моему мнению, следует отметить, заключается в том, что атрибут alt равен , требуется для проверки в качестве документа XHTML, тогда как атрибут title является просто «дополнительная опция», как бы.

7 голосов
/ 16 мая 2009

Это потому, что они служат разным целям, и их следует использовать не просто один над другим.

«alt» для того, что вы, ребята, уже сказали, так что вы можете увидеть, что это за изображение, если изображение не может быть отображено (по какой-либо причине), оно также позволяет людям с нарушениями зрения понять, что это за изображение о.

Атрибут «title» является правильным для отображения всплывающей подсказки с заголовком для изображения.

6 голосов
/ 16 мая 2009

По моему мнению, альтернативный текст должен всегда описывать то, что видно на картинке, для случая, когда изображение не отображается.

alt = текст [CS] Для пользовательских агентов, которые не могут отображать изображения, формы или апплеты, этот атрибут определяет альтернативный текст. Язык альтернативного текста указывается атрибутом lang.

w3.org

3 голосов
/ 17 мая 2009

Я полагаю, что alt требуется для строгого соответствия XHTML.

Как уже отмечали другие, заголовок предназначен для всплывающих подсказок (приятно иметь), а alt - для доступности. Нет ничего плохого в использовании обоих, но alt всегда должен быть там.

1 голос
/ 28 февраля 2019

Атрибут ALT

Атрибут alt определен в наборе тегов (а именно, img, area и, необязательно, для input и applet), чтобы позволить вам предоставить текстовый эквивалент для объекта.

Текстовый эквивалент приносит следующие преимущества вашему веб-сайту и его посетителям в следующих распространенных ситуациях:

  • в настоящее время веб-браузеры доступны на самых разных платформах с очень разными возможностями; некоторые не могут отображать изображения вообще или только ограниченный набор типов изображений; некоторые могут быть настроены так, чтобы не загружать изображения. Если ваш код имеет атрибут alt, установленный в его изображениях, большинство этих браузеров будут отображать описание, которое вы дали вместо изображений
  • некоторые из ваших посетителей не могут видеть изображения, будь они слепые, дальтоники, слабовидящие; Атрибут alt очень помогает тем людям, которые могут положиться на него, чтобы иметь представление о том, что находится на вашей странице
  • Боты поисковых систем относятся к двум указанным выше категориям: если вы хотите, чтобы ваш сайт был проиндексирован так, как он того заслуживает, используйте атрибут alt, чтобы убедиться, что они не пропустят важные разделы ваших страниц.

Атрибут названия

Целью этого метода является предоставление контекстно-зависимой помощи пользователям при вводе данных в формах путем предоставления справочной информации в атрибуте title. Справка может включать информацию о формате или примеры ввода.

Пример 1: раскрывающееся меню, ограничивающее область поиска
Форма поиска использует выпадающее меню, чтобы ограничить область поиска. Выпадающее меню находится рядом с текстовым полем, используемым для ввода поискового запроса. Связь между полем поиска и раскрывающимся меню понятна пользователям, которые могут видеть визуальный дизайн, в котором нет места для видимой метки. Атрибут title используется для идентификации меню select. Атрибут title может произноситься программами чтения с экрана или отображаться как подсказка для людей, использующих экранные лупы.

<label for="searchTerm">Search for:</label>
<input id="searchTerm" type="text" size="30" value="" name="searchTerm">
<select title="Search in" id="scope">
    ...
</select> 

Пример 2. Поля ввода номера телефона
Веб-страница содержит элементы управления для ввода номера телефона в Соединенных Штатах, с тремя полями для кода города, обмена и последних четырех цифр.

<fieldset>
    <legend>Phone number</legend>
    <input id="areaCode" name="areaCode" title="Area Code" type="text" size="3" value="" >
    <input id="exchange" name="exchange" title="First three digits of phone number" type="text" size="3" value="" >
    <input id="lastDigits" name="lastDigits" title="Last four digits of phone number" type="text" size="4" value="" >
</fieldset> 

Пример 3. Функция поиска Веб-страница содержит текстовое поле, в котором пользователь может ввести условия поиска, и кнопку «Поиск» для выполнения поиска. Атрибут title используется для идентификации элемента управления формы, и кнопка расположена сразу после текстового поля, чтобы пользователю было ясно, что в текстовом поле должен быть введен поисковый термин.

<input type="text" title="Type search term here"/> <input type="submit" value="Search"/>

Пример 4. Таблица данных элементов управления формы
Таблица данных элементов управления формы должна связывать каждый элемент управления с заголовками столбцов и строк для этой ячейки. Без заголовка (или закадрового LABEL) невизуальным пользователям трудно приостановить и запросить соответствующие значения заголовка строки / столбца с помощью вспомогательной технологии при переходе по форме.

Например, форма опроса имеет четыре заголовка столбца в первой строке: Вопрос, Согласен, Не определен, Не согласен. Каждая следующая строка содержит вопрос и переключатель в каждой ячейке, соответствующий выбору ответа в трех столбцах. Атрибут title для каждой радиокнопки представляет собой объединение выбора ответа (заголовок столбца) и текста вопроса (заголовок строки) с дефисом или двоеточием в качестве разделителя.

Элемент Img

Допустимые атрибуты, указанные в MDN .

  • alt
  • crossorigin
  • decoding
  • height
  • importance (экспериментальный API)
  • intrinsicsize (экспериментальный API)
  • ismap
  • referrerpolicy (экспериментальный API)
  • src
  • srcset
  • width
  • usemap

Как видите, атрибут title недопустим внутри элемента img. Я бы использовал атрибут alt и, если требуется, я бы использовал CSS (пример: псевдокласс :hover) вместо атрибута title.

0 голосов
/ 02 октября 2018

Атрибут ALT предназначен для слабовидящих пользователей, которые будут использовать программу чтения с экрана. Если ALT отсутствует в ЛЮБОМ теге изображения, будет считан весь URL-адрес изображения. Если изображения являются частью дизайна сайта, они все равно должны иметь ALT, но их можно оставить пустыми, чтобы не нужно было читать URL для каждой части сайта.

0 голосов
/ 15 августа 2013

Вы не должны использовать атрибут title для элемента img. Причина этого довольно проста:

Предположительно, информация о заголовке является важной информацией, которая по умолчанию должна быть доступна всем пользователям. Если это так, представьте это содержимое в виде текста рядом с изображением.

Источник: http://blog.paciellogroup.com/2010/11/using-the-html-title-attribute/

HTML 5.1 включает общие рекомендации по использованию атрибута title:

Использование атрибута title в настоящее время не рекомендуется, так как многие пользовательские агенты не предоставляют атрибут доступным способом, как того требует данная спецификация (например, требуется, чтобы указывающее устройство, такое как мышь, вызывало всплывающую подсказку, что исключает только пользователи и пользователи, работающие только с сенсорным экраном, например пользователи с современным телефоном или планшетом).

Источник: http://www.w3.org/html/wg/drafts/html/master/dom.html#the-title-attribute

Когда дело доходит до доступности и различных программ чтения с экрана:

  • Челюсти 10-11: по умолчанию отключено
  • Window-Eyes 7.02: включено по умолчанию
  • NVDA: не поддерживается (без опций поддержки)
  • VoiceOver: не поддерживается (без опций поддержки)

Следовательно, как адекватно выразился Дени Будро : явно не рекомендуемая практика .

0 голосов
/ 31 июля 2009

MVCFutures для ASP.NET MVC решили сделать оба. Фактически, если вы укажете «alt», он автоматически создаст «заголовок» с тем же значением для вас.

У меня нет исходного кода, но быстрый поиск в Google нашел для него тестовый пример!

    [TestMethod]
    public void ImageWithAltValueInObjectDictionaryRendersImageWithAltAndTitleTag() {
        HtmlHelper html = TestHelper.GetHtmlHelper(new ViewDataDictionary());
        string imageResult = html.Image("/system/web/mvc.jpg", new { alt = "this is an alt value" });
        Assert.AreEqual("<img alt=\"this is an alt value\" src=\"/system/web/mvc.jpg\" title=\"this is an alt value\" />", imageResult);
    }
...