Скажем alt картинкам!

Создавая доступные сайты, без сомнения, стоит обращать внимание и на то, как они выглядят при отключённой графике. Существует ряд традиционных рекомендаций, которые помогут вам в такой ситуации:

В принципе, можно продолжать и дальше, но я не об этом. Обратите внимание на последнюю рекомендацию — о ней помнит большинство верстальщиков, иначе можно получить линейкой по рукам от валидатора. Однако мало кто вспоминает про такой слегка сомнительный, но пока вполне легальный элемент, как <input type="image"/>

И чёрт с ней, с иллюстрацией — не увидят, да может и к лучшему. А вот невозможность отправить форму при отсутствующей или неявно присутствующей кнопке — это уже дело посерьёзнее. И что будем делать? Понятное дело — прописывать текст действия, написанный или подразумеваемый на картинке. Но как? К примеру, встретил я на днях такое:

<input type="image" src="send.gif" value="Отправить"/>

Судя по всему, это сработано по аналогии с <input type="submit"/>, где задание атрибута value="Отправить" задаёт текст действия на кнопке. И ведь работает, правда, местами… Однако, как нам известно, элемент <input type="image"/> имеет красноречивый атрибут alt (наряду с типично картиночными align, usemap, ismap), предназначенный как раз для задания альтернативного текста.

Учитывая то, что валидатор не имеет ничего против атрибутов value и alt для <input type="image"/> в XHTML 1.0 Strict документе, то давайте проверим на практике — кто же из них круче. Предложим такой код следующему зверинцу: IE 5–7, Firefox 3, Opera 9, Safari 3…

<input type="image" src="send.gif" alt="Альтернативный текст"/>
<input type="image" src="send.gif" value="Чушь какая-то"/>
<input type="image" src="send.gif" value="Чушь какая-то" alt="Альтернативный текст"/>

…и получаем:

Альтернативный текст: alt vs. value
Альтернативный текст: alt vs. value

Выходит, что value хоть и срабатывает в Firefox и Safari как альтернативный текст, но всё же напрочь перебивается значением alt, которое стабильно отображается во всех протестированных браузерах.

Вывод очевиден — помимо правильности использования атрибута alt по прямому назначению, это ещё и самый стабильный способ задания альтернативного текста для элемента <input type="image"/>.

Комментарии

19

Спасибо. Ценное замечание.
Как-то до этого не обращал на это внимание.

Из серии: Теща проглотила 10 копеек. Мелочь а приятно.

Проблема с третьим пунктом: альтернативный текст должен писать тот же, кто пишет основной текст, но он врядли знает об этом. Инструкций о том как это правильно сделать очень мало, да и те на английском. Оттого грамотный альтернативный текст - удивительная редкость.

грамотный альтернативный текст - удивительная редкость

Отчасти — это проблема CMS'ок, когда при вставке картинок не предлагается ввести их описание. WordPress в это смысле — молодец, выдаёт два promt'а: для url и alt.

А я поругаюсь не на alt, а что вместе с ним очень редко прописывают width и height (c display:block) в css для часто используемых img-элементов (анонсы к новостям, например), потому что в том же firefox alt-текст может выгядеть несколько не так, как хотелось бы.

что вместе с ним очень редко прописывают width и height

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

— Неправильными цмсками пользуетесь, господа. — грустно сказал Никита Селецкий, переключаясь на таб с мануалом по TYPO3...

Автору спасибо за статью. А чем использование лучше с фоновым рисунком? Ну разве что использование графической кнопки без надписи. Хотя для submit обычно пишется, что собственно будет происходить.

А чем использование лучше с фоновым рисунком?

Что-то не пойму о чём речь.

Почему сомнительный?

Потому, что это скорее IMG, который используется не в качестве иллюстрации, а в качестве элемента формы. Понимаете?

Извините за повтор, но я ошибся:
Чем использование input type="image" лучше input type="submit" с фоновым рисунком?

Чем использование input type="image" лучше input type="submit" с фоновым рисунком?

Да ничем, просто это проще ;) Нормальная резиновая кнопка с масштабируемыми скруглениями — это, в лучшем случае, 4 экстра-div'а, а если нужна полупрозрачная тень, то в разы больше…

Нормальная резиновая кнопка с масштабируемыми скруглениями — это, в лучшем случае, 4 экстра-div'а

hint: css3

border-radius
-moz-border-radius
-webkit-border-radius

а если нужна полупрозрачная тень, то в разы больше…

opacity
box-shadow

но вот честно, неужели в нынешние времена рассвета видео-хостингов и трекеров кто-то еще просматривает сайты без включенной графики?
может и полезно делать сайт совместимым, но имхо это уже стало ненужной работой.

Двайте признаем честно, жизнь не заканчивается за МКАДом, где скорости таковы, что… ладно. Но помимо сценария «картинки отключены» есть ещё и такие:

— Пользователь физически не может увидеть картинки
— Загрузка картинок по какой-то причине прервана частично или полностью
— Поиск по картинкам Google/Yandex, где правильный alt весьма важен

…и всё это обеспечивает ту или иную доступность сайта. Неужели этого мало?

с точки зрения SEO можно и title для картинок прописывать. да и самим картинкам давать осмысленные имена.
но мы же не о SEO говорим? не знаю что там с МКАД'ом, я за 41 км от него живу. но даже в глубинке канал 128кбс уже считается слабеньким.

Скажу проще: есть более, чем одна причина для корректного использования alt — а поскольку это не сложно, то я не вижу причин отказывать себе в этом.

пмнится мне что alt не работал в каких то стареньких версиях толи оперы толи мозилы... непомню но именно из-за этого всегда использовал title

nesQuake, всегда он работал. Просто в IE он появляется при наведении, а в FF и Опере нет. В принципе и появляться он там не должен, это ошибка IE.