Форум программистов, компьютерный форум, киберфорум
HTML, CSS
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Эксперт функциональных языков программированияЭксперт по математике/физике
4313 / 2105 / 431
Регистрация: 19.07.2009
Сообщений: 3,204
Записей в блоге: 24

Семантическая разметка пояснения к значению характеристики

10.10.2025, 23:01. Показов 668. Ответов 3

Студворк — интернет-сервис помощи студентам
Добрый день!
Решил изучить и на примере применить семантическую вёрстку.

Во-первых, не понимаю, как тестируется её корректность и адекватность.
Во-вторых, не понимаю, как следует выискивать подходящие теги и схемы.

Рассмотрим в качестве учебной задачи следующий пример.
Пусть требуется составить страницу, которая показывает состояние открытых Merge Request в текущем проекте, будь то в виде страницы в составе собственного сервера (самописный аналог GitLab) или в виде генерируемой страницы, агрегирующей сведения из другого сервера.

Страница должна содержать список MR, каждый элемент — самостоятельная сущность, имеющая стандартные разделы (наименование, описание) и агрегированные характеристики (оценка на основании ревью, контекстные сведения о разработчике на основании других систем учёта и т.п.).

Итак, структура страницы мне видится такой:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<main>
  <ul>
    <li>
      <article itemscope itemtype="https://schema.org/CreativeWork">
        <h1 itemprop="name">#45. Добавить авторизацию по SMS</h1>
        <a href="https://mercurialhub.org/project/mergerequest/45" itemprop="url">Открыть в GitLab / GitHub / что мы там используем</a>
        <section itemprop="description">
          <p>Авторизация по SMS требует изменения интерфейс в следующих компонентах:</p>
          <!-- ... -->
        </section>
        <section>
          <h2>Свойства и характеристики</h2>
          <dl>
            <div itemprop="author" itemscope itemtype="https://schema.org/Person">
              <meta itemprop="givenName" content="Иван">
              <meta itemprop="familyName" content="Пупкин">
              <dt>Основной разработчик этого MR</dt>
              <dd itemprop="name">Иван Пупкин</dd>
              <dd>Пацан, который был переброшен в этот проект этим летом</dd>
            </div>
            <div itemprop="review" itemscope itemtype="https://schema.org/CriticReview">
              <div itemprop="reviewRating" itemscope itemtype="https://schema.org/Rating">
                <meta itemprop="ratingValue" content="1" />
              </div>
              <dt>Оценка согласно проведённому Code Review</dt>
              <dd>говнокод</dd>
              <dd>Количество возгласов «какого лешего?!» во время ревью превысило предельный уровень в 10 возгласов</dd>
            </div>
            <!-- ... -->
          </dl>
        </section>
      </article>
    </li>
    <!-- ... -->
  </ul>
</main>
Педположии, что в этом коде весь текст — тот, что надо. Ни прибавить, ни убавить.

Насколько адекватно я отразил семантику?

В частности, раздел про свойства явно имеет вид словаря, но каждый пункт имеет как бы два значения: одно значение нормальное (например, что разработчик — Иван Пупкин, или что он написал говнокод), а второе — пояснение (например, кто такой этот Иван Пупкин? что именно мы имеем в виду под говнокодом). Строго говоря, эти пояснения функционально зависят от первого значения. Можно ли как-то указать, что второе значение поясняет или определяет первое?
Вариант
HTML5
1
<abbr ttitle="Количество возгласов «какого лешего?!» во время ревью превысило предельный уровень в 10 возгласов">говнокод</abbr>
я отверг, потому что это не сокращение или аббревиатура.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.10.2025, 23:01
Ответы с готовыми решениями:

Семантическая верстка
&lt;body&gt; &lt;section id=&quot;home&quot;&gt; &lt;nav&gt; &lt;a href=&quot;#&quot;&gt;Home&lt;/a&gt; &lt;a href=&quot;#&quot;&gt;What...

Семантическая вёрстка с использованием тегов HTML5
Добрый день, форумчане! Хочу наконец-то разобраться с семантикой HTML5. Но что-то походу я...

Семантическая верстка цитаты
Доброго времени. Изучаю верстку. Делаю всякие элементы. Что-то не очень уверена. Этот вариант...

3
366 / 331 / 83
Регистрация: 17.04.2022
Сообщений: 1,095
Записей в блоге: 8
11.10.2025, 07:11
Цитата Сообщение от Mysterious Light Посмотреть сообщение
Во-первых, не понимаю, как тестируется её корректность и адекватность.
Во-вторых, не понимаю, как следует выискивать подходящие теги и схемы.
Формализация на https://schema.org/
Валидатор там же https://validator.schema.org/

Возможно, стоит посмотреть https://texterra.ru/blog/kratk... on-ld.html - как мне кажется вы найдете ответы на многие вопросы
0
 Аватар для voraa
1271 / 1235 / 183
Регистрация: 21.01.2024
Сообщений: 5,693
11.10.2025, 09:19
Замечание по семантики.
Крайне рекомендуется, что бы в <section> был <h1> - <h6>
Я бы вместо <section> строках 7-10 поставил либо <header>, либо просто <div>

Очень спорное использование <dl> - <dt> - <dd>. Это должны все таки быть термины и их определения, а не просто список заголовком с текстом.
1
Эксперт функциональных языков программированияЭксперт по математике/физике
4313 / 2105 / 431
Регистрация: 19.07.2009
Сообщений: 3,204
Записей в блоге: 24
11.10.2025, 11:41  [ТС]
Цитата Сообщение от sqltd1 Посмотреть сообщение
Формализация на https://schema.org/
Валидатор там же https://validator.schema.org/
Ну так ими я и пользовался, не из головы же я все itemprop/itemtype достал!

Вопрос мой был в другом. Скажем, есть документация к типам TypeScript, подглядывая в которую я пишу свой код. А есть программа tsc, которая проверяет, что то, как я использую эти типы в своём коде, не противоречит их формальному определению.

На сайте https://schema.org/docs/schemas.html мы видим определения концептов. Причём есть формальная часть (перечень допустимых свойств), полуформальная (их рекомендуемые типы) и неформальная (описание, когда использовать и какой информацией наполнять).
Валидатор позволяет проверить только формальные ограничения.

Например, я не уверен на 100%, что в моём примере <div itemprop="review" itemscope itemtype="https://schema.org/CriticReview"> должен быть именно itemprop="review", а не что-нибудь другое, и он должен быть именно CriticReview, а не что-нибудь другое.
Я как тупая ИИ — из правильных слов в правдоподобном порядке собрал текст. Но, в отличие от ИИ, я хочу убедиться, что он обладает смыслом, причём обладает именно правильным, нужным смыслом. Как мне это сделать?

Цитата Сообщение от voraa Посмотреть сообщение
Крайне рекомендуется, что бы в <section> был <h1> - <h6>
Я бы вместо <section> строках 7-10 поставил либо <header>, либо просто <div>
Я опирался на пример из MDN.
Пример использования section из MDN
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<h1>Choosing an Apple</h1>
<section>
  <h2>Introduction</h2>
  <p>
    This document provides a guide to help with the important task of choosing
    the correct Apple.
  </p>
</section>
 
<section>
  <h2>Criteria</h2>
  <p>
    There are many different criteria to be considered when choosing an Apple —
    size, color, firmness, sweetness, tartness...
  </p>
</section>

Предлагаешь что-то такое?
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<main>
  <ul>
    <li>
      <article itemscope itemtype="https://schema.org/CreativeWork">
        <h1 itemprop="name">#45. Добавить авторизацию по SMS</h1>
        <a href="https://mercurialhub.org/project/mergerequest/45" itemprop="url">Открыть в GitLab / GitHub / что мы там используем</a>
        <header itemprop="description">
          <p>Авторизация по SMS требует изменения интерфейс в следующих компонентах:</p>
          <!-- ... -->
        </header>
        <section>
          <h1>Свойства и характеристики</h1>
          <dl>
            <div itemprop="author" itemscope itemtype="https://schema.org/Person">
              <meta itemprop="givenName" content="Иван">
              <meta itemprop="familyName" content="Пупкин">
              <dt>Основной разработчик этого MR</dt>
              <dd itemprop="name">Иван Пупкин</dd>
              <dd>Пацан, который был переброшен в этот проект этим летом</dd>
            </div>
            <div itemprop="review" itemscope itemtype="https://schema.org/CriticReview">
              <div itemprop="reviewRating" itemscope itemtype="https://schema.org/Rating">
                <meta itemprop="ratingValue" content="1" />
              </div>
              <dt>Оценка согласно проведённому Code Review</dt>
              <dd>говнокод</dd>
              <dd>Количество возгласов «какого лешего?!» во время ревью превысило предельный уровень в 10 возгласов</dd>
            </div>
            <!-- ... -->
          </dl>
        </section>
      </article>
    </li>
    <!-- ... -->
  </ul>
</main>
Цитата Сообщение от voraa Посмотреть сообщение
Очень спорное использование <dl> - <dt> - <dd>. Это должны все таки быть термины и их определения, а не просто список заголовком с текстом.
Я встречал использование <dl> для записи словарей вида ключ-значение. Реальные сайты не вспомню, а на MDN есть такой пример:
HTML5
1
2
3
4
5
6
7
8
9
10
<dl>
  <dt>Name</dt>
  <dd>Godzilla</dd>
  <dt>Born</dt>
  <dd>1952</dd>
  <dt>Birthplace</dt>
  <dd>Japan</dd>
  <dt>Color</dt>
  <dd>Green</dd>
</dl>
Как мне кажется, это в точности такая же ситуация, что у меня в примере.

Есть вариант лучше?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.10.2025, 11:41
Помогаю со студенческими работами здесь

Семантическая верстка в 2019
Доброго времени суток уважаемые форумчане! Пересматривая в инспекторе HTML код крупных и всем...

Семантические теги, как правильно использовать, а также их значение? HTML5
Не совсем понимаю значение элементов: &lt;article&gt;&lt;/article&gt; &lt;section&gt;&lt;/section&gt; &lt;aside&gt;&lt;/aside&gt;...

Семантические теги HTML5 и кроссбраузерность
Кто-нибудь использует семантические теги? Что используете для IE? html5shiv? А как решаете вопрос с...

Семантические теги html5
Стоит ли использовать новые теги html5(article,nav,header и т.д.) в новом проекте? Вроде бы Html5...

Семантические элементы
Здравствуйте. Знаю что тема не нова и уже обсуждалась, и в интернете масса информации (кстати,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru