Семантическая разметка играет ключевую роль при создании пользовательских интерфейсов, обеспечивая правильную структуру документа и доступность компонентов. В контексте Element Plus семантическая разметка проявляется через использование компонентов с понятными, логически структурированными HTML-тегами и атрибутами, а также через настройку их свойств для улучшения восприятия как пользователями, так и вспомогательными технологиями.
Использование логичных контейнеров
Компоненты ElContainer, ElHeader,
ElAside, ElMain, ElFooter
соответствуют семантике HTML5:
<el-container>
<el-header>Заголовок приложения</el-header>
<el-container>
<el-aside width="200px">Боковая панель</el-aside>
<el-main>Основной контент</el-main>
</el-container>
<el-footer>Футер приложения</el-footer>
</el-container>
Эти элементы не только визуально структурируют интерфейс, но и помогают поисковым системам и скринридерам правильно интерпретировать контент.
Кнопки и действия
Компонент ElButton всегда должен содержать явное
назначение через атрибут type и текстовую подпись.
Например:
<el-button type="primary" aria-label="Сохранить изменения">Сохранить</el-button>Для кнопок, выполняющих специфические действия, рекомендуется
использовать aria-label для улучшения доступности.
Формы и поля ввода
ElForm и связанные компоненты
(ElFormItem, ElInput, ElSelect,
ElCheckbox) имеют встроенные механизмы валидации и
поддержки семантики:
<el-form :model="form" :rules="rules">
<el-form-item label="Имя" prop="name">
<el-input v-model="form.name" placeholder="Введите имя"></el-input>
</el-form-item>
</el-form>Атрибут label в ElFormItem связывает
поле ввода с текстовой меткой, обеспечивая корректную работу
вспомогательных технологий.
Таблицы и списки
Компоненты ElTable и ElTableColumn
используются для структурированных данных и автоматически создают
семантически корректные <table>,
<thead> и <tbody>:
<el-table :data="tableData">
<el-table-column prop="date" label="Дата"></el-table-column>
<el-table-column prop="name" label="Имя"></el-table-column>
</el-table>Для списков применяются компоненты ElMenu и
ElMenuItem, которые формируют правильные
<ul> и <li> элементы при
рендеринге.
Element Plus активно использует ARIA-атрибуты для улучшения доступности интерфейсов:
ElCollapse, ElDropdown).Пример использования в аккордеоне:
<el-collapse v-model="activeNames">
<el-collapse-item title="Секция 1" name="1" aria-expanded="true">
Контент секции
</el-collapse-item>
</el-collapse>
Компонент ElDialog создает модальные окна с правильной
структурой:
<dialog> или аналог
<div role="dialog"> при рендеринге.aria-modal="true" для обозначения
модальности.aria-labelledby:<el-dialog title="Подтверждение" :visible.sync="dialogVisible" aria-modal="true" aria-labelledby="dialog-title">
<span id="dialog-title">Подтвердите действие</span>
<p>Вы действительно хотите удалить запись?</p>
</el-dialog>
ElMenu и ElBreadcrumb создают структурированные списки для навигации:
<el-breadcrumb separator="/">
<el-breadcrumb-item to="/">Главная</el-breadcrumb-item>
<el-breadcrumb-item>Категория</el-breadcrumb-item>
</el-breadcrumb>Каждый элемент <el-breadcrumb-item> формирует
семантически корректный <li> с вложенным
<a> при необходимости, поддерживая SEO и удобство
навигации.
Использование ElIcon с явным назначением и текстовыми
альтернативами:
<el-button>
<el-icon><Delete /></el-icon>
<span class="sr-only">Удалить</span>
</el-button>
sr-only — класс для скрытого текста, доступного
скринридерам.ElContainer,
ElHeader, ElMain), чтобы структура была
отражена в DOM.key и prop для корректного связывания данных и
столбцов.Соблюдение этих принципов позволяет создавать интерфейсы, которые одновременно удобны для пользователя, корректно индексируются поисковыми системами и соответствуют стандартам доступности.