Определение экземпляров
Существует некоторая путаница с правильным использованием элемента dfn, который описан в спецификации HTML как "определение экземпляра вложенного термина". Это удивительно близко к идее элемента dl (термин определения), используемого в списках определений.
Различие состоит в том, что используемый в dfn термин не обязан быть частью списка терминов и описаний, и может использоваться как часть обычного потока текста, даже в прозе разговорного стиля. Рекомендуется использовать его, когда аббревиатура используется более одного раза.
Поэтому, например, если в тексте многократно встречается аббревиатура HTML, то использование всякий раз кода "<abbr title="HyperText Markup Language">HTML</abbr>", было бы избыточным, визуально отвлекающим и для пользователей считывателей экрана, возможно, утомительным, когда HTML раскрывался бы снова и снова, хотя они уже и слышали, что он означает.
Вместо этого можно вставить следующий код в том месте, где он впервые определяется для читателей:
<p><dfn><abbr>HTML</abbr></dfn> ("HyperText Markup Language") is
a language to describe the contents of web documents. [...]</p>
Затем в дальнейшем, когда используется аббревиатура HTML, ее можно пометить просто как "<abbr>HTML</abbr>". Агент пользователя может затем предоставить пользователю некоторый метод извлечения определяющего экземпляра этой аббревиатуры. К сожалению пока ни один агент пользователей в настоящее время этого не делает, включая считыватели экрана. Было бы лучше, поэтому, использовать атрибут title.
<p><dfn><abbr title="HyperText Markup Language">HTML</abbr></dfn>
("HyperText Markup Language") is a language to describe the contents of web documents. [...]</p>
К сожалению, мы теперь дублируем расширенное выражение для HTML, что может создавать проблемы для пользователей считывателей экрана. Однако исключение видимого расширения делает документ менее полезным для зрячих пользователей, которые составляют большую долю пользователей почти во всех случаях.
Я бы предложил считать это допустимым компромиссом, когда имеется только один или два объекта, требующих определения. Если вы этим специально озабочены, можно использовать вместо этого следующий код:
<p><abbr title="HyperText Markup Language">HTML</abbr>
(<dfn>HyperText Markup Language</dfn>) is a language to
describe the contents of web documents. [...]</p>
Однако агент пользователя должен тогда делать предположение, когда он видит только один элемент dfn, к чему он относится. В настоящее время ни один агент пользователя в действительности не делает ничего полезного с элементом dfn, поэтому это может оказаться приемлемым.
На страницах, которые требуют большого числа определений, может оказаться лучше создать раздел глоссария или страницу, где можно использовать более строгую разметку списка определений.
Это неудачное решение, когда спецификация была создана без четких рекомендаций о том, как предполагается использовать элемент, и, вероятно, не основывалась на каких-либо реальных применениях этого элемента — иначе был бы метод соединения термина с его полным описанием или определением. Спецификация HTML 5 содержит значительно больше деталей об использовании dfn, но она находится все еще в стадии чернового проекта и пока не подходит для приложения в Web.
- 21. Менее известные семантические элементы
- Введение
- Выделение контактной информации
- Языки программирования и код
- Вывод взаимодействия с компьютером
- Переменные
- Цитирование
- Аббревиатуры
- Определение экземпляров
- Верхние и нижние индексы
- Разрыв строки
- Горизонтальная линейка
- Изменения в документах (вставка и удаление)
- Некоторые будущие элементы html
- Заключение
- Об авторе