Элементы HTML принадлежат content cagetories. Для моей задачи я должен убедиться, что я не размещаю узлы интерактивного контента.Есть ли простой способ определить категорию контента элемента HTML?
В настоящее время я могу пересекать родителей узла, чтобы убедиться, что ни один из них не имеет тип <a>, <button>, <details>, <embed>, <iframe>, <keygen>, <label>, <select>, and <textarea>
. Все эти элементы являются частью категории «Интерактивный контент».
Другие типы также могут быть интерактивными.
<audio>
, если атрибут управления присутствует<img>
, если атрибут usemap присутствует<input>
, если атрибут типа не в скрытом состоянии<menu>
, если атрибут типа в состоянии панели инструментов<object>
, если присутствует атрибут usemap<video>
, если атрибут управления присутствует
Кроме того, любой элемент с атрибутом tabindex
is considered interactive.
Эти правила являются частью спецификации HTML и хорошо документированы, но вид боли, которую нужно отслеживать. Есть ли более простой способ проверки того, к каким категориям контента принадлежит элемент?
Я не думаю, что есть автоматический способ. Что вы делаете, это требует, чтобы вы это знали? Похоже, что это в основном то, над чем должны работать разработчики браузеров, а не программисты приложений. Единственные не-браузерные приложения, о которых я могу думать, должны знать, это HTML-валидаторы. – Barmar
@Barmar Я работаю над ошибкой в приложении, которое связано с вложенными тегами ''. Я, возможно, зашел слишком далеко вниз по кроличьей норе ... – hughes
@ JakeParis как так? ОП сказал: «Есть ли простой способ ...», подразумевая, что есть трудный путь, который они уже пробовали. И для моего любопытства я хотел бы посмотреть, что они попробовали. Еще одна причина, по которой я сказал это и не поставил вопрос, как это делают большинство людей, когда они говорят это. – Adjit