Java, UX, HTML, CSS, WEB-design

Почему вы должны выбрать статью HTML5, а не раздел

[ad_1]

  • Брюс Лоусон

  • 0 Комментарии

Почему вы должны выбрать HTML5 article Над section

  • 8 минут чтения

  • CSS, HTML, браузеры

Краткое резюме ↬

Визуальное отображение в браузерах заголовков, вложенных внутрь <section> элементы создают впечатление, что они присваивают этим заголовкам логическую иерархию. Однако это чисто визуально и не передается вспомогательным технологиям. Какая польза <section>, и как авторам следует размечать заголовки, которые чрезвычайно важны для пользователей AT?

Несколько дней назад я болтал с друзьями, один из которых спросил меня, в чем разница между <article> и <section> в HTML. Это одна из вечных загадок веб-разработки, наравне с вопросом «почему пробел: теперь, а не пробел: без переноса?» и «почему в CSS «серый» цвет темнее, чем «темно-серый»?».

Я дал свой обычный ответ: подумай о <article> не только как газетная статья или сообщение в блоге, но и как предмет одежды — отдельная сущность, которую можно повторно использовать в другом контексте. Так что ваши брюки — это предмет, и вы можете носить их с другой одеждой; ваша рубашка — это статья, и ее можно носить с разными брюками; ваши лакированные сапоги на шпильках до колен — это вещь (вы бы не надели только одну из них, не так ли?).

Спецификация говорит:

«Элемент статьи представляет собой полную или автономную композицию в документе, странице, приложении или сайте, которая, в принципе, может независимо распространяться или повторно использоваться, например, в синдикации. Это может быть сообщение на форуме, статья в журнале или газете, запись в блоге, пользовательский комментарий, интерактивный виджет или гаджет или любой другой независимый элемент контента».

Таким образом, домашняя страница со списком постов в блоге будет <main> элемент, обертывающий серию <article> элементы, по одному для каждого поста в блоге. Вы использовали бы ту же структуру для списка видео (например, YouTube), где каждое видео было бы заключено в <article>, список продуктов (например, Amazon) и так далее. Любой из тех <article>s является концептуально синдицируемым — каждый может стоять отдельно на своей собственной выделенной странице, в рекламе на другой странице, в виде записи в RSS-канале и так далее.

Apple WatchOS содержит Reader, который использует <article> элемент, чтобы узнать основной контент вашей страницы. Apple говорит:

«Мы добавили Reader в watchOS 5, где он автоматически активируется при переходе по ссылкам на веб-страницы с большим количеством текста. Важно убедиться, что Reader выделяет ключевые части вашей веб-страницы, используя семантическую разметку, чтобы усилить значение и назначение элементов в документе. Давайте рассмотрим пример. Во-первых, мы указываем, какие части страницы являются наиболее важными, заключая их в тег статьи».

Объединение <article> с микроданными HTML5 помогает Reader создать оптимальный дисплей для небольших экранов часов:

«В частности, включение этих элементов заголовка в статью гарантирует, что все они появятся в Reader. Reader также по-разному оформляет каждый элемент заголовка в зависимости от значения его атрибута itemprop. Используя itemprop, мы можем гарантировать, что автор, дата публикации, заголовок и подзаголовок будут на видном месте».

Еще после прыжка! Продолжить чтение ниже ↓

Так что насчет
?

Мой обычный совет продолжается: не беспокойтесь о <section> или беспокоиться о том, чем он отличается от <article>. Он был изобретен как универсальная оболочка для заголовков, чтобы браузер мог определять структуру документа HTML5.

Что? Алгоритм структуры документа — это способ использовать только один тег заголовка — <h1> — и заставить его волшебным образом «стать» на правильном уровне заголовка (например, превратиться в <h2>, <h3>и т. д.), в зависимости от того, насколько глубоко он вложен в элементы секционирования HTML5:<article>, <section>, и так далее.

Итак, например, вот что вы ввели в свою CMS:

<h1>My Fabulous article</h1>

<p>Lorem Ipsum Trondant Fnord</p>

Это работает блестяще, когда показывается как отдельная статья. Но как насчет вашей домашней страницы, которая представляет собой список ваших последних статей?

<h1>My latest posts</h1>

<article>

  <h1>My fabulous article</h1>

 <p>Lorem Ipsum Trondant Fnord</p>

</article>

<article>

  <h1>Another magnum opus</h1>

  <p>Magnum solero paddle pop</p>

</article>

В этом примере, согласно спецификации, <h1>с внутри <article> элементы «становятся» логическими <h2>с, потому что <article>, как <section>, это секционный элемент.

Примечание: Это не новая идея. Еще в 1991 году сэр дядя Тимбо писал:

«На самом деле я предпочел бы вместо <h1>, <h2>и т. д. для заголовков [those come from the AAP DTD] иметь вложенный <SECTION></SECTION> элемент и общий <H></H> который на любом уровне внутри разделов будет давать требуемый уровень заголовка».

Однако, к сожалению, ни один браузер не реализует структуру HTML5, поэтому нет смысла использовать <section>. В какой-то момент программа чтения с экрана JAWS попыталась реализовать алгоритм структурирования документа (в IE, но не в Firefox), но реализовала его с ошибками. Похоже, разработчикам браузеров это просто неинтересно (более грязные подробности в разделе «Дополнительная литература» для настоящих анораков).

«Но, — вмешался в разговор другой друг, — теперь браузеры отображают разные размеры шрифта в зависимости от того, насколько глубоко <h1> вложен в <section>с», и приступил к ее доказательству. С ума сошел!

Вот похожее демо. В левой колонке показаны четыре <h1>s, вложенные в разделы; правая колонка показывает a, <h1>, <h2>, <h3>, <h4> без вложения. Скриншот Firefox показывает, что вложенный <h1>по умолчанию используется тот же шрифт, что и традиционный <h1><h4> теги:

Снимок экрана, показывающий, что вложенные элементы h1 и реальные элементы заголовка отображаются в одинаковых размерах.

Сравнение

, вложенных в элементы

, и

,

,

,

(большой предварительный просмотр)

Результаты одинаковы в Chrome, производных Chromium, таких как бета-версия Edge для Mac и Safari на Mac.

Значит ли это, что мы все должны с радостью начать использовать <h1> в качестве нашего единственного элемента заголовка, вложив его в <section>с?

Нет. Потому что это всего лишь изменение визуального стиля h1s. Если мы откроем инспектор специальных возможностей Firefox в devtools, мы увидим, что текст «уровень 2» выглядит как H2, но по-прежнему установлен на «уровень 1» — дерево специальных возможностей не было изменено, чтобы быть уровневым. 2.

Снимок экрана инспектора специальных возможностей Firefox, выбирающего вложенный элемент h1

Инспектор специальных возможностей Firefox показывает, что вложенный <h1> выглядит визуально так же, как <h2> но его уровень арии неправильно установлен на «1», а не на «2» (большой предварительный просмотр)

Сравните это с Real H2 в правом столбце:

Скриншот инспектора доступности Firefox, выбирающего настоящий элемент h2

Инспектор специальных возможностей Firefox показывает, что реальный <h2> имеет вычисленный уровень арии «2», что правильно (большой предварительный просмотр)

Это показывает, что дерево доступности было правильно проинформировано о том, что это заголовок уровня 2. По факту, Мозилла попыталась передача вычисленного уровня в дерево доступности:

«Мы немного поэкспериментировали с этим… но нам пришлось отменить это, потому что люди в нашей команде a11y жаловались на слишком много регрессий (случайное понижение <h1> уровни и прочее)».

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

«Полезность правильной структуры заголовков очень высока: 86,1% респондентов считают уровни заголовков очень или в некоторой степени полезными».

Поэтому следует продолжать использовать <h1> до того как <h6>, и игнорировать section.

Никогда не говори никогда

— Но… — вы сейчас, наверное, возмущаетесь, — есть <section> прямо на этой странице!». И вы будете правы, дорогой читатель. «Краткое резюме» заключено в <section>, из соображений доступности. Когда пользователь программы чтения с экрана Леони Уотсон провела свой веб-семинар «Как пользователь программы чтения с экрана получает доступ к Интернету», она указала на область, в которой разметка Smashing Magazine может быть изменена, чтобы улучшить ее работу.

Как видно из скриншота, статьям Smashing предшествует краткое резюме, за которым следует горизонтальная линия, отделяющая резюме от самой статьи.

Скриншот верхней части статьи Smashing Magazine

Smashing «Quick Summary» отделен от полной статьи горизонтальной линией. (Большой превью)

Но разделитель чисто декоративный, поэтому Леони не могла понять, где кончается резюме и начинается статья. Она предложила исправление: мы завернули сводку в <section> элемент:

<section aria-label="quick summary">

    Summary text

</section>

В большинстве программ чтения с экрана <section> элемент не объявляется, если он не имеет доступное имя. В данном случае текст арии label. Теперь ее программа чтения с экрана объявила «Область краткой сводки», а после сводки «Конец области краткой сводки». Эта простая разметка также позволяет пользователю программы чтения с экрана при желании перескакивать через сводку.

Мы могли бы использовать простой <div> но тогда, как пишет Марко Зехе,

«Как правило, если вы помечаете что-то с помощью aria-label или aria-labelledby, убедитесь, что у него есть надлежащая роль виджета или ориентира».

Поэтому вместо использования <div role=”region” aria-label=”quick summary”>, мы выбрали <section> поскольку это имеет встроенную роль региона, и применяется безошибочный закон Брюса ARIA ™: встроенные удары на болтах. Большой.

Вывод

Надеюсь, вы ушли с этими выводами:

  • Не используйте множество <h1>с. Сделать <h1> основной заголовок вашей страницы, затем используйте <h2>, <h3>, <h4>и т. д. в правильной иерархии без пропуска уровней.
  • <section> может использоваться с aria-label, чтобы сообщить пользователю программы чтения с экрана, где начинается и заканчивается конкретная часть статьи. В противном случае забудьте об этом или используйте другой элемент, например <aside aria-label=”quick summary”> или <div role=”region” aria-label=”quick summary”>.
  • <main>, <header>, <footer> и <nav> очень полезны для пользователей программ чтения с экрана и полностью прозрачны для тех, кто не использует вспомогательные технологии. Так что используйте их.
  • <article> не только для сообщений в блоге — это для любой автономной вещи. Это также помогает WatchOS правильно отображать ваш контент.

я с благодарностью признаю Леони Уотсонпомощь в написании этой статьи. Все ошибки полностью по ее вине.

Дальнейшее чтение

  • «Заголовки и разделы», HTML 5.2 Рекомендация W3C (14 декабря 2017 г.) Обратите внимание на его предупреждение: «В настоящее время нет известных собственных реализаций алгоритма структуры… Поэтому нельзя полагаться на алгоритм структуры для передачи структуры документа пользователям. Авторы должны использовать ранг заголовка (h1-h6) для передачи структуры документа».
  • «Алгоритма структуры документа не существует», Адриан Роселли
    Все кровавые подробности того, как изменилась спецификация алгоритма секционирования.
  • «АРИЯ в HTML», Черновик редактора W3C (19 декабря 2019 г.) Правила, которым нужно следовать, если вы обнаружите, что добавляете роли и атрибуты ARIA в HTML.
  • Практическая ценность семантического HTML». Брюс Лоусон
    Моя собственная статья со ссылкой на детали того, как WatchOS использует HTML5 и микроданные.
Сокрушительная редакция
(ра, ил)



[ad_2]
Source: https://smashingmagazine.com

Заключение

Вы ознакомились с статьей — Почему вы должны выбрать статью HTML5, а не раздел

Пожалуйста оцените статью, и напишите комментарий.

Похожие статьи

Добавить комментарий

Ваш адрес email не будет опубликован.

Краткое описание по статье Почему вы должны выбрать статью HTML5, а не раздел

Название: Почему вы должны выбрать статью HTML5, а не раздел . Краткое описание: [ad_1] ⭐ Брюс Ло . Дата публикации: 21.01.2022 . Автор: Алишер Валеев .

Для чего создан сайт Novosti-Nedeli.ru

Данный сайт посвящен новостям мира и мира технологий . Также тут вы найдете руководства по различным девайсам.

Сколько лет сайту?

Возраст составляет 3 года

Кнопка «Наверх»