HTML тег img: атрибут title та атрибут alt?


110

Я переглядав Amazon і помітив, що під час пошуку " 1 ТБ ", якщо навести курсор миші на зображення рейтингу зірок, ви бачите рахунок лише за допомогою IE. Якщо ви використовуєте інший веб-переглядач, оцінка не відображатиметься.

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

Це тому, що стандартний спосіб відображення altтексту є лише тоді, коли користувач вимикає графіку або коли браузер "читається" (наприклад, браузер для користувачів із вадами зору). IE, однак, показує це на наведення.

Тому я думаю, що якщо Amazon повинен показувати це незалежно від браузера користувача, то його titleслід використовувати додатково alt. Чи погодились би ви?

Відповіді:


64

Я б поїхав на обидва. У заголовку буде показано приємну підказку у всіх браузерах, а alt дасть опис під час перегляду в браузері без зображень.

Це означає, що я хотів би побачити статистику того, скільки "серферів" там заходять у "магазин" для перегляду товарів, насправді вимкнено зображення або використовується браузер, який не підтримує зображення. Я думаю, що дні, коли 90% населення використовує модем 28k для підключення до Інтернету, вже закінчуються.


54
Використання alt не лише полягає в тому, щоб щось показати, коли зображення придушені з причин пропускної здатності. Деякі браузери, призначені для людей із вадами зору, наприклад, будуть широко використовувати alt.
AnthonyWJones

8
... але: іноді зображення не завантажуються; і є невізуальні браузери для сліпих; мовленнєві функції в сафарі для читання сторінки, включаючи атрибути alt із зображень; Пошукова оптимізація; і т. д. багато вагомих причин не припускати 100% відображення зображення.
рив

2
@ Ентоні, лютий - погодився. Є різні хммм "крайні випадки", коли надання alt є дуже корисним (і я не пропоную його відкинути). Однак, якщо є "змістовна інформація" для надання користувачеві у вигляді підказки, то там, звичайно, слід бути атрибутом заголовка - оскільки саме для цього він є. Коли я кажу вище "крайній випадок", я вважаю, що загальний відсоток користувачів, які звертаються за допомогою JAWS або подібних, є досить низьким порівняно з Firefox, Chrome, IE, Opera, Safari, Konqueror тощо
scunliffe

Теги ALT зручні для SEO. Слід розміщувати так само, як і заголовки.
HelpNeeder

Якщо у вас була інвалідність і вам потрібен зчитувач екрана, я впевнений, що ви не оціните, як вас називають "краєм справи".
Метт Флетчер

164

Їх використовують для різних речей. altАтрибут використовується замість зображення. Якщо зображення неможливо відобразити, а також у екрані зчитування.

titleАтрибут показаний разом із зображенням, зазвичай у вигляді ширяння підказки.

Одне не слід використовувати «замість» іншого. Кожного слід використовувати належним чином , щоб робити те, що їм було призначено.


2
І зверніть увагу, оскільки атрибут HTML5 alt є обов'язковим. У деяких країнах, якщо ви робите проект для державної установи, навіть НЕЗАКОНОМО не використовувати його. Тоді як назва, як заявлено, - це лише "дизайн".
jave.web

2
І я не вірю - я знаю, що читачі екранів читають alt замість зображення.
jave.web

4
@ jave.web Характеристики HTML5 пропонують і вказують багато речей про атрибут alt w3.org/html/wg/drafts/html/master/…, однак це не іде так далеко, щоб сказати, що це "обов'язкове". Зокрема, коли зображення є виключно прикрасою, значення атрибута alt насправді взагалі не очікується.
сканліфф

1
@scunliffe, що не використовує атрибут alt у HTML5, означає, що ваш HTML5 недійсний. Якщо зображення є суто декоративним <img>
елементом

5
@ jave.web ви читаєте більше специфікацій, ніж зазначено. Вони наполегливо пропонують вам включити атрибут alt, але є винятки w3.org/html/wg/drafts/html/master/… і немає жорсткого виконання, щоб вимагати, щоб мати атрибут alt. Ні, де в специфікації не зазначено, що це "обов'язково" або "потрібно". - насправді вони перераховують кілька випадків, коли атрибут alt не вказаний, або він навмисно залишається порожнім.
сканліфф

10

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

Ще один момент, який я вважаю, слід зазначити, що атрибут alt необхідний для підтвердження як XHTML-документа, тоді як атрибут заголовка є лише "додатковим варіантом".


7

Це тому, що вони служать різним цілям, і їх обох слід використовувати не просто один над одним.

"Alt" - це те, що ви вже сказали, хлопці, тож ви можете побачити, про що це зображення, якщо зображення не вдається відобразити (з будь-якої причини), а також дозволяє людям з вадами зору зрозуміти, про що це зображення.

Атрибут "title" є правильним для відображення підказки із заголовком для зображення.


6

На мою думку, чи повинен текст alt завжди описувати те, що видно на малюнку, якщо вигляд не відображається.

alt = text [CS] Для користувацьких агентів, які не можуть відображати зображення, форми чи аплети, цей атрибут вказує альтернативний текст. Мова альтернативного тексту задається атрибутом lang.

w3.org


3

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

Як зазначали інші, назва призначена для підказок (приємно мати), альт - для доступності. Нічого поганого в використанні обох, але альт завжди повинен бути там.


1

Атрибут ALT призначений для користувачів із вадами зору, який би використовував зчитувач екрана. Якщо ALT відсутній у будь-якому тезі зображень, буде прочитаний весь URL-адресу зображення. Якщо зображення є частиною дизайну сайту, вони все одно повинні мати ALT, але вони можуть залишатися порожніми, щоб URL-адресу не потрібно було читати для кожної частини сайту.


1

Атрибут 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) невізуальним користувачам важко призупиняти та допитувати відповідні значення заголовка рядків / стовпців, використовуючи їх допоміжну технологію під час прокладки форми.

Наприклад, форма опитування містить чотири заголовки стовпців у першому рядку: Запитання, Погодьтесь, Не визначившись, Не погодившись. Кожен наступний рядок містить питання та перемикач у кожній комірці, що відповідає вибору відповіді у трьох стовпцях. Атрибут заголовка для кожної радіо кнопки - це з'єднання вибору відповіді (заголовок стовпця) та тексту питання (заголовок рядка) з дефісом або двокрапкою як роздільником.

Елемент зображення

Дозволені атрибути, згадані в MDN .

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

Як бачите, titleатрибут не дозволений всередині imgелемента. Я використовував би altатрибут, а якщо вимагає, я використовував би CSS (Приклад: псевдоклас :hover) замість titleатрибута.


0

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


1
тож я думаю, вам все одно, 3,8 зірки чи 4,2 зірки?
неополярність

0

MVCFutures для ASP.NET MVC вирішив зробити і те, і інше. Насправді, якщо ви надасте "alt", він автоматично створить "title" з тим же значенням для вас.

У мене немає вихідного коду, але швидкий пошук у 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);
    }

Так він діє так само, як IE7 і нижче, що вважається поганою поведінкою. robertnyman.com/2009/05/07/…
Робін Догерті

0

Не слід використовувати атрибут title для елемента img. Міркування цього досить просте:

Імовірно, інформація про підписи є важливою інформацією, яка повинна бути доступною для всіх користувачів за замовчуванням. Якщо так, подайте цей вміст у вигляді тексту поруч із зображенням.

Джерело: http://blog.paciellogroup.com/2010/11/using-the-html-title-attribute/

HTML 5.1 включає загальні поради щодо використання атрибута заголовка:

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

Джерело: http://www.w3.org/html/wg/drafts/html/master/dom.html#the-title-attribute

Що стосується доступності та різних читачів екранів:

  • Щелепи 10-11: вимкнено за замовчуванням
  • Window-Eyes 7.02: увімкнено за замовчуванням
  • NVDA: не підтримується (немає варіантів підтримки)
  • VoiceOver: не підтримується (немає варіантів підтримки)

Отже, як адекватно висловився Денис Будро : явно не рекомендована практика .

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