Можно ли использовать элемент внутри элемента?
Я в процессе улучшения доступности в моем HTML с помощью HTML5 и WAI-ARIA.
это нормально, чтобы иметь следующую настройку?
<!-- main content -->
<section id="main" role="main">
<h1>The main content</h1>
<!-- This div needs to be here for styling reasons -->
<div class="the-content">
<p>All the text that goes with the main content</p>
</div>
<!-- the sidebar -->
<aside id="sidebar" role="complementary">
<h2>A title</h2>
<p>Some text</p>
<aside>
</section>
дело в том, что я не уверен, должен ли я иметь <aside> элемент вне <section> и role="main" контейнер. Разве это имеет значение?
4 ответов
это имеет значение да. Где его поставить определяется тем, как содержимое в aside тег относится к главной section.
например:
если содержание в aside связано с основной статьей, она должна быть внутри main section. Однако, если содержимое внутри sidebar aside tag отличается от main Я бы поставил его вне main section
http://html5doctor.com/aside-revisited/
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/aside
Да, это <aside> внутри <section> является совершенно допустимой разметкой и пройдет проверку W3C, если это то, о чем вы беспокоитесь.
на <section> элемент позволяет содержание потока внутри которые могут включать <aside> element-однако, если вы используете разделы только для стилизации, вы, вероятно, должны использовать div вместо этого.
помимо этого (каламбур) у меня есть сомнения на role=main часть действительными. - по этому, единственные значения атрибута роли, разрешенные на <section> элементов, показаны ниже:
семантика арии по умолчанию:
role=region.какие еще роли, состояния и свойства ARIA могут использоваться?
alert,alertdialog,application,contentinfo,dialog,document,log,marquee,searchилиstatus.любой мировой
aria-*атрибуты и любые Aria - * атрибуты, применимые к разрешенные роли.
который довольно заметно не включает main роль.
спек (редактора что уже включает в себя main) не позволяет вложить main элемент внутри article, aside, footer, header или nav, но это ничего не говорит о вложенности этих элементов внутри main. Он также предоставляет два примера, которые используют article и nav (внутри документа навигации) внутри main. Так, по крайней мере,aside, вложенный в article или section (и поэтому scoped к своему уровню), должно быть также позволено. Я также могу представьте себе случай, когда какая-то часть контента с некоторой дополнительной информацией внутри (например, в aside примеры использования в WCAG Wiki) могут образовывать вместе основное содержимое страницы, поэтому я не думаю, что отказ от этого будет разумным.
С другой стороны, алгоритм контура (который теперь кажется основной причиной существования всех содержание секционирования, включая aside) по-прежнему характеризуется как "в опасности", таким образом, определение этих элементов может измениться, и могут быть добавлены некоторые разъяснения.
вероятно, мы должны задать этот вопрос редакторам спецификаций HTML5?
Я соглашусь с Дарреном в отношении того, где вы бросаете тег. Кроме того, ваша маркировка немного странная. Различные теги имеют роли WAI-ARIA изначально, в то время как да, вы можете перезаписать собственные роли, но почему бы вам? Это сообщение о WAI-ARIA на блоге Paciello Group говорит об этом больше. Ex:
Insstead использования
<section id="main" role="main">
вы можете просто использовать <main>, что означает то же самое, и лучше практика. The <aside> тег имеет дополнительную роль добавлено изначально, так что это похоже на то, что мое имя Райан, действительно мое имя Райан.