Справочник React API предоставляет некоторую информацию об этом.На DOM Elements он говорит:
В React все свойства и атрибуты DOM (включая обработчики событий) должны быть camelCased.Например, атрибут HTML tabindex
соответствует атрибуту tabIndex
в React.Исключение составляют aria-*
и data-*
атрибуты, которые должны быть в нижнем регистре.Например, вы можете оставить aria-label
как aria-label
.
Раздел Все поддерживаемые атрибуты HTML дает autoComplete
и autoFocus
в качестве ожидаемых имен.
Так вот, на самом деле это не отвечает , почему атрибуты aria-*
остаются в нижнем регистре, но, по крайней мере, это четкое утверждение о том, как они должны использоваться.
Предположение: Возможно, это как-то связано с изменением, произошедшим между версиями React 15 и 16. В блоге « Атрибуты DOM в React 16 » объясняется, что настраиваемые атрибуты теперь разрешены вРеакция 16, которые были ранее удалены.В нем описываются некоторые опасения, что внутренний белый список атрибутов стал бременем для обслуживания, которое необходимо было упростить.Теперь произвольные атрибуты могут быть включены в JSX.Я не знаю, как это работает внутри, но я предполагаю, что атрибуты aria-*
играют определенную роль в истории внутреннего белого списка.Например, WAI-ARIA 1.1 недавно представил несколько новых атрибутов aria-*
, а в рабочем модуле контента семантики персонализации WAI имеется множество атрибутов aui-*
.Оба из них должны были бы быть в белом списке.