Почему вай-ария реагирует не на CamelCase? - PullRequest
0 голосов
/ 19 сентября 2018

С реагировать на документы

Обратите внимание, что все атрибуты HTML aria- * полностью поддерживаются в JSX.Принимая во внимание, что большинство свойств и атрибутов DOM в React являются camelCased, эти атрибуты должны быть в дефисе (также известный как kebab-case, lisp-case и т. Д.), Так как они представлены в простом HTML:

AFAIK,каждый атрибут HTML переименовывается в camelCase в реакции.Есть ли какая-либо причина, чтобы объяснить, почему aria-* имеет свое первоначальное имя?

Бонус, кто-нибудь знает, должно ли это быть <input autoFocus='autofocus'/> или <input autofocus='autofocus'/>.Первое выглядит правильно, потому что мой редактор не выдает никаких предупреждений.Но несовместимо ли оно между именем атрибута и его значением?

Должно ли оно быть autocomplete или autoComplete, в то время как в исходном имени атрибута нет дефиса между auto и complete?

1 Ответ

0 голосов
/ 25 сентября 2018

Справочник 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-*.Оба из них должны были бы быть в белом списке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...