MDX — это расширение Markdown, позволяющее вставлять JSX-компоненты прямо в текст. При работе с MDX критически важно учитывать доступность контента, поскольку его могут просматривать пользователи с ограниченными возможностями, включая слабовидящих, пользователей экранных читалок и людей с когнитивными нарушениями.
В MDX компоненты создаются с использованием JSX, что делает доступность напрямую зависимой от правильной разметки HTML и корректного использования атрибутов ARIA. Основные моменты:
<header>, <main>,
<section>, <article>,
<footer> обеспечивает структуру документа, понятную
для экранных читалок. Вставка этих элементов в MDX происходит так же,
как в обычном JSX.alt. В MDX это реализуется через стандартный
Markdown-синтаксис  или через компонент
<img alt="описание" src="путь" />.MDX позволяет интегрировать инструменты для автоматического тестирования доступности:
axe-core — библиотека для проверки DOM на
соответствие стандартам WCAG. В проекте на MDX можно использовать
jest-axe для тестирования компонентов:
import { render } from '@testing-library/react';
import { axe } from 'jest-axe';
import MyComponent from './MyComponent.mdx';
test('компонент соответствует стандартам доступности', async () => {
const { container } = render(<MyComponent />);
const results = await axe(container);
expect(results).toHaveNoViolations();
});Storybook с addon-a11y — позволяет визуально отслеживать нарушения доступности компонентов MDX. MDX-файлы можно использовать напрямую как Storybook-документацию, что упрощает проверку:
import { Meta } from '@storybook/addon-docs';
<Meta title="Компоненты/Кнопка" component={Button} />
После этого Storybook автоматически анализирует все компоненты на странице с помощью панели доступности.
MDX поддерживает любые React-компоненты, включая формы, кнопки и модальные окна. При тестировании доступности необходимо:
Tab,
Enter, Space.aria-modal="true", role="dialog" и корректно
управлять фокусом.MDX часто используется в документации, где содержатся примеры кода и компоненты. Для автоматизации проверки доступности:
jest-axe и
@testing-library/react, чтобы тестировать каждый
компонент и примеры прямо из MDX.cypress-axe) для проверки
интерактивных MDX-страниц.<div> и <span> для структурных
элементов.axe-core или Storybook addon.Доступность в MDX — это не только требование для пользователей с ограниченными возможностями, но и фактор улучшения общей структуры, удобочитаемости и качества документации, делая контент более универсальным и корректным для всех платформ.