Почему я должен добавлять свои пользовательские атрибуты с помощью «data-»?

Поэтому любой пользовательский атрибут данных, который я использую, должен начинаться с «data-»:

  • John says: Hello, how are you?
  • Будет ли что-то плохое, если я просто проигнорирую это? То есть:

     
  • John says: Hello, how are you?
  • Я полагаю, что одна из плохих вещей заключается в том, что мои пользовательские атрибуты могут конфликтовать с атрибутами HTML со специальными значениями (например, name ), но помимо этого возникает проблема с просто написанием «example_text» вместо «data-example_text»? (Это не подтвердит, но кому это нужно?)

      Есть несколько преимуществ для сохранения пользовательских атрибутов с префиксом data- *.

      1. Это гарантирует, что не будет никаких столкновений с расширениями HTML в будущих выпусках. Это проблема, которая уже в некоторой степени встречается с некоторыми из новых атрибутов, введенных в HTML5, где существующие сайты используют атрибуты с тем же именем и ожидают различного и несовместимого пользовательского поведения. (например, required атрибут на input элементах, как известно, имел некоторые столкновения на некоторых популярных сайтах в прошлом)

      2. Для доступа к этим атрибутам из сценариев существует удобный DOM API, HTMLElement.dataset . В настоящее время он поддерживается большинством браузеров .

      3. Они дают четкое представление о том, какие атрибуты являются настраиваемыми атрибутами, а какие – стандартизованными атрибутами. Это не только помогает валидаторам, позволяя им разрешать любые атрибуты с данными, но при этом выполнять эффективную проверку ошибок для других атрибутов (например, улавливать опечатки), это также помогает сделать этот аспект исходного кода более понятным для тех, кто его читает, включая людей которые могут работать на веб-сайте после оригинального автора.

      По словам Джона Ресига , вся цель добавления этих атрибутов пользовательских данных в HTML5 sepcs состоит в том, чтобы разрешить встраивать пользовательские данные в HTML, сохраняя при этом действительность .

      Если вы не заботитесь о проверке (и, как вы сказали, ваши пользовательские атрибуты не сталкиваются с существующими атрибутами HTML, такими как name , id , style и т. Д.), То, я думаю, вам не нужно использовать префикс data- , Но учитывая, что это не огромная стоимость для написания действительного, совместимого кода, я не понимаю, почему вы этого не сделали.

      Давайте будем гением компьютера.