Как семантически добавить маркировку к не входным элементам, которые используются в качестве входных данных - PullRequest
0 голосов
/ 18 октября 2018

В настоящее время я работаю над веб-сайтом, который включает в себя стилизованные входные данные, например, с помощью <label> -элемента для стилевого оформления :

<label class="checkbox">
  <input type="checkbox">
  <span></span>
</label>

И где стандарт <input> типы просто не могут быть надежно стилизованы. Мы воссоздали необходимую функциональность с другими типами элементов, например <input type="range"> был заменен следующим (и немного JavaScript):

<div class="rangeinput">
  <div class="rangeinput-thumb></div>
  <div class="rangeinput-slider"></div>
</div>

Теперь вопрос заключается в том, как семантически добавить метки к этим элементам.

Для обычных вводов элемент <label> будет работать, но для предоставленных примеров ни <label>, ни<div> разрешено содержимое <label>.

. Флажок-флажок может быть решен путем назначения идентификатора для флажка и использования for -атрибута элемента label, так чтоэто не должно быть помещено вокруг другого лейбла.Но это не работает для любых пользовательских элементов, так как они не labelable , и было бы предпочтительно использовать одно решение для каждого ввода .

В настоящее время яобертывание каждого элемента, подобного вводу, в <fieldset> с <legend>, но это больше похоже на взлом, чем на самом деле помогает семантике:

<fieldset>
  <legend>A styled rangeinput:</legend>
  <div class="rangeinput">
    <div class="rangeinput-thumb></div>
    <div class="rangeinput-slider"></div>
  </div>
</fieldset>

Этот вопрос не о переходе по клику-фокусный эффект элемента, а точнее, как семантически связать короткий описательный текст с элементом, который принимает пользовательский ввод.

...