Страницы

Поиск по вопросам

среда, 19 июня 2019 г.

Что означает idl-атрибут в спецификации html5?

В спецификации html5 часто встречается понятие idl-атрибут. Например, из описания атрибута title
"The title IDL attribute must reflect the title content attribute"
Примерный перевод: "idl-атрибут title должен отображать содержимое атрибута title"
Совершенно не понимаю, что означает эта фраза? Причем тут idl и какое отношение idl имеет к html? Я думал idl - это совершенно иной язык.
Или, например, атрибут style.
"The style IDL attribute is defined in the CSS Object Model (CSSOM) specification"
Примерный перевод: "idl-атрибуту style дано определение в спецификации CSS Object Model (CSSOM) specification"
Понятно, что этому атрибуту дано определение в такой-то спецификации, но что это за атрибут? для чего он нужен, что дает? и какое отношение имеет к спецификации html?


Ответ

Во-первых, мир веба постоянно меняется, постоянно появляются новые фичи, которые надо бы специфицировать. Количество спек разрослось, и вот для того чтобы как-то унифицировать понятия, используемые в разных спецификациях, появилась некая "мета-спека": Web-IDL, Interface Defenition Language for Web. Документ, описывающий как нужно описывать интерфейсы для новых браузерных возможностей. Собственно понятие IDL-атрибут оттуда и берется.
Во-вторых, в вебе довольно часта ситуация сначала появляются фичи, и только когда фичи все давно используют, под них пишется спека. Которая просто берет что есть и описывает формально. То есть по сути спека большее время на развитие фичи не влияет.
В результате у нас есть некий интерфейс. Те самые IDL - атрибуты. И есть реальный мир. И надо бы эти две вещи как-то познакомить между собой, а то нехорошо получается. Приведенные вами строки этим и занимаются.
Примеры: Допустим у вас есть в html

sometext


По первой выделенной строчке: Что вы получите когда напишете document.getElementById('someid').title? Вот строка спеки и говорит о том, что "не волнуйся парень, то что ты в теге написал для title и то что ты получить пытаешься, это одно и то же"
"The title IDL attribute must reflect the title content attribute"
По второй выделенной строчке
"The style IDL attribute is defined in the CSS Object Model (CSSOM) specification"
Что ты реально получишь обратившись сделав document.getElementById('someid').style - смотри в спеке по цсс.

Комментариев нет:

Отправить комментарий