Можно ли использовать <figcaption> без его родительского элемента <figure>?

  1. Кто-нибудь знает, если figcaption элемент можно использовать без своего родителя figure элемент?

  2. Каковы плюсы и минусы этого? И есть ли рекомендуемый вариант по сравнению с другим?

  3. Наконец, можете ли вы подкрепить свой ответ ссылками на надежные ресурсы?

2 ответа

Решение

См. Спецификацию :

Контексты, в которых этот элемент может использоваться:
как первый или последний дочерний элемент элемента figure.

Ваш вопрос в основном сводится к следующему: «Какие проблемы могут возникнуть, если я помещу элемент HTML в контекст, которому он не принадлежит согласно спецификации?»

Что ж, это зависит от вашего определения «проблемы», и очевидно, что лучшая практика - никогда не позволять этому случаться и в первую очередь придерживаться «действительной» HTML-структуры, но ваше любопытство также справедливо и, безусловно, стоит изучить.

Вы, вероятно, подразумеваете, что неуместный тег всегда будет как- то интерпретироваться - в этом случае ( ) даже останется как элемент уровня блока в DOM, поэтому вы все равно сможете стилизовать его и обрабатывать из JS даже без его стандартного родитель.

Есть шанс, что в этом конкретном случае вы никогда не столкнетесь с серьезной проблемой. Вы даже можете проконсультироваться со спецификациями и изучить обработку ошибок и увидеть, что такие «плохие» сценарии в основном имеют определенное поведение. Конструкция WRT DOM; (возможно) создаст элемент figcaption с текстом 'foo', а создаст текстовую «полосу» в элементе body, за которым, например, следует пустой элемент таблицы. Дело в том, что эти правила действительно сложны, и, несмотря на эти спецификации, реализации различных пользовательских агентов могут сильно различаться, поэтому после тестирования вашего приложения на всех ваших устройствах вы окажетесь в неопределенности, что может пойти не так на устройствах, которые вы не тестировали:

  • Может быть, какой-нибудь робот полнотекстового индексирования выйдет из строя при синтаксическом анализе вашего кода и выбросит вашу страницу или ее часть из индекса,
  • возможно, некоторые вспомогательные технологии будут зависать при поиске изображения, которого нет для случайного оставляя ваших пользователей во враждебном пространстве,
  • возможно, вы наткнетесь на библиотеку JavaScript, которая не знает, как переключать ее отображение, и вы получите встроенный дисплей вместо блока,
  • или вы включите библиотеку CSS, которая устанавливает абсолютную позицию, подразумевающую относительную обертку фигуры, так что в итоге вы получите все случайные figcaptions в нижней части вашей страницы один над другим.

Это всего лишь несколько гипотетических сценариев, которые приходят на ум. Дело в том, что явно лучше не давать им возможности случиться.

Другие вопросы по тегам