Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Проблема: htmlacademy/attr-req-value вместе с select #82

Closed
what1s1ove opened this issue Dec 1, 2023 · 6 comments · Fixed by #85
Closed

Проблема: htmlacademy/attr-req-value вместе с select #82

what1s1ove opened this issue Dec 1, 2023 · 6 comments · Fixed by #85

Comments

@what1s1ove
Copy link

what1s1ove commented Dec 1, 2023

Ошибка из терминала

 23:15  error  The attribute "value" requires a value  htmlacademy/attr-req-value 
 29:15  error  The attribute "value" requires a value  htmlacademy/attr-req-value

Часть кода на котором произошла ошибка

<label for="fruits">Fruits</label>
<select name="fruits" required>
  <option value="">Select...</option>
  <option value="banana">Banana</option>
  <option value="apple">Apple</option>
</select>

Описание проблемы

Селект с value="" в опшине разрешен спекой.

Юзкейс: когда нужно сделать селект обязательным для заполнения, но по умолчанию не нужно давать никакого значения (для этого и используется опишн с пустым значением).

@nikolai-shabalin
Copy link
Contributor

Спасибо. Уже в работе

@nikolai-shabalin
Copy link
Contributor

@what1s1ove , привет.

Есть пара вопросов. Подскажи пожалуйста.

  1. Пример, когда value пустой для двух <option> в одном <select> является ошибочным? Я сейчас написал проверку, что <option value=""> с пустым значением может быть только в единственном экземляре в <select>.
<select name="fruits" required>
  <option value="">Select...</option>
  <option value="">Banana</option>
  <option value="apple">Apple</option>
</select>
  1. Для твоего примера у <option> не должно быть атрибутов selected disabled или у пользователя должна быть возможность вернуться к пустому "Select.."?

@what1s1ove
Copy link
Author

what1s1ove commented Jan 13, 2024

@what1s1ove , привет.

Есть пара вопросов. Подскажи пожалуйста.

  1. Пример, когда value пустой для двух <option> в одном <select> является ошибочным? Я сейчас написал проверку, что <option value=""> с пустым значением может быть только в единственном экземляре в <select>.
<select name="fruits" required>
  <option value="">Select...</option>
  <option value="">Banana</option>
  <option value="apple">Apple</option>
</select>
  1. Для твоего примера у <option> не должно быть атрибутов selected disabled или у пользователя должна быть возможность вернуться к пустому "Select.."?

Привет @nikolai-shabalin !

  1. Я думаю да, хоть в спеке ничего не нашел про это. В голову точно не приходит ни одного кейса, где нужно было бы иметь больше чем один option с пустым value... . Спасибо что добавил проверку! Мне кажется она очень полезная.
  2. В практике не было такого чтобы я вешал disabled. selected в целом может быть, но так как этот option обычно идет первым в <select>, он будет выбран по умолчанию. Вообщем в моей практике добавления данных атрибутов на "дефолтный" option не было. Как мне кажется, это какие-то эдж-кейсы, которые обрабатываются уже JS`ом, когда пользователь непосредственно уже взаимодействует со страницей. Линтер про них знать не будет, так как обычно линтер проверяет код который отправляется пользователю, но то что будет с ним дальше, и как JS будет изменять атрибуты, он не в курсе.

@nikolai-shabalin
Copy link
Contributor

  1. Спекой пускай валидатор занимается. Задача этого пакета улучшать качество HTML-разметки, не нарушая валидацию. Мы можем придумать дополнительные правила по написанию разметки =)
  2. Спасибо, тогда не буду учитывать наличие этих атрибутов

@nikolai-shabalin
Copy link
Contributor

nikolai-shabalin commented Jan 13, 2024

Можно обновить пакет до версии 1.0.16.

npm i linthtml-rules-htmlacademy@1.0.16

Спасибо за предложение

@what1s1ove
Copy link
Author

Можно обновить пакет до версии 1.0.16.

npm i linthtml-rules-htmlacademy@1.0.16

Спасибо за предложение

Спасибо за реализацию!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants