Comments 38
Так и не понял, а в чём состоит аргументация тех, кто агитирует за использование div вместо button?
Нет необходимости делать ресет стандартных стилей.
Стабильная кроссбраузерная стилизация без неожиданных сдвигов на пару пикселей.
Нет неожиданной отправки формы любой кнопкой в ней.
Можно реиспользовать тот же компонент кнопки для релизации и других кликабельных контролов.
Нет неожиданной отправки формы любой кнопкой в ней
так не надо лепить тип submit и не будет никаких отправок
Нет необходимости делать ресет стандартных стилей.
А кто сейчас не делает ресет стандартных стилей?
Читаю когда ответы создателя лучшего фреймворка не покидает ощущение его оторванности от современной разработки
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/button#type
Тот, кто не хочет неожиданных сайд эффектов.
Так и не понял, а в чём состоит аргументация тех, кто агитирует за использование div вместо button?
Полагаю, это стандартная аргументация "я подсмотрел в интернете вот такой вариант, по другому не умею и теперь весь мир должен под меня подстроиться."
можно добавить
[role="button"]
А можно role="tab"
не надо вмешиваться в порядок фокусировки.
tabindex="0" и не влияет на порядок.
Нужно прикрепить это событие к
document
Не нужно.
Сначала создаем себе проблемы а потом из героически преодолеваем … безумие и отвага !
Меня лично бесит, когда табом или аддоном Surfingkeys нельзя добраться до какого-то элемента формы и приходится переносить руки на мышь.
Так лежат руки на месте и лежат, очень удобно и быстро, а тут туда-сюда, прицелься и тыкни.
Это все берется из-за магии тегов, потому что навешиваются доп. стили, которые могут вылезти неожиданно в каком-нибудь браузере.
Например есть вот эта таблица c дефолтными стилями: https://www.w3schools.com/cssref/css_default_values.php
a:link color: (internal value);
Этот (internal value) может различаться в браузерах, а хочется что бы было все единообразно.
Плюс эта таблица не раскрывает aria-атрибуты и читалка может по разному работать в разных браузерах, и поэтому приходиться ручками что-то дописывать.
И вот тут приходит мысль использовать div, самому все прописать и радоваться, что все везде одинаково работает. Но див не панацея, и самая частая задача где он не подходит это router-link. Казалось бы прописал на onclick смену роута, aria и все хорошо, но не работает функция открыть в новой вкладке. Поэтому приходиться использовать a-tag, делать preventDefault и переписывать стили.
Еще бывает когда используют <a href="#" /> для открывания модалки, но такая кнопка скролит в начало документа. Поэтому надо href="javascript:void(0)" или preventDefault, или вообще button.
В общем, что бы все работало красиво с a11y и единообразными стилями, нужно знать много тонкостей, а хочется быстро и просто.
Что бы лично я мог предложить:
Резервирование тега e (element) в HTML и гарантирование отсутствия каких либо aria, стилей и всего остального.
Введение дополнительных атрибутов, которые позволяют превратить e-тег в любой другой элемент например urlforopeninnewtab (попмини что все стандартные атрибуты пишутся без разделителей).
Стандартизация всех тегов, составления списка стилей (уже есть), aria и других атрибутов, которые применяются по умолчанию.
Тогда можно будет почитать этот список и понять, что же нужно будет переопределить для требуемого эффекта.
приходиться использовать a-tag, делать preventDefault и переписывать стили
Надо сформировать корректный целевой урл, позволить пользователю по нему перейти любым удобным способом, и отреагировать изменением интерфейса на изменение урла, каким бы образом он ни поменялся. Но я, конечно, оторван от современной разработки, я не умею кодить через то место, через которое выходит говнокод.
Этот (internal value) может различаться в браузерах, а хочется что бы было все единообразно.
Согласен, пользователям хочется чтобы было всё однообразно, чтобы в том браузере которым они пользуются, на всех сайтах ссылки были раскрашены одинаковым цветом.
Вы ведь про это однообразие говорили?
Да-да, синим цветом даже на синем фоне. Они такое любят.
на белом

А особенно они любят, когда в тёмном окружении сайты выжигают им сетчатку белым фоном.
И многим фон хабра выжег сетчатки?
Вы ведь отличить дефолтный фон браузера (на скриншоте со ссылками) от фона хабра, в который этот скриншот вставлен?

История с тёмными темами очень старая. Каждый раз её пробовали продавать аудитории по новому и каждый раз это не получалось.
Вы ведь веб-разработчик, да?
Скажите, а кому должно быть удобно пользоваться веб-сайтом: аудитории веб-сайта или его разработчикам?
На чьи пристрастия надо ориентироваться?
Терпеть не могу темные темы. Извините, если кто их очень любит)
энергосбережение на мобильных устройствах
В многочисленных текстах, посвящённых тёмной теме, есть ответ на вопрос, кто её любит.
Это люди работающие в полутьме и посадившие себе зрение.
Очень похоже на типичного айтишного айтишника, работающего поздними вечерами в офисе, где уже никого нет и выключено основное освещение, или по ночам из дома, где домашние уже спят и свет выключен.
Update: ну и, тёмная тема на смартфонах, это чтобы по ночам в кровати думскролить и не мешать спать другому человеку.
Кстати, Хабр мне поддакивает

Если бы мы не переопределяли стили элементов, а использовали бы стандартные, то по идее такой проблемы не должно бы было быть. Фон страницы и цвет ссылок был бы в соответствии с цветовым оформлением в браузере или в ОС. Таким, к какому привык пользователь.

Ну расположение элементов-то уж можно выровнять. Я про шрифты и оформление цветами говорил.
О, эти зумеры вот-вот изобретут вёрстку таблицами. Продолжаем наблюдение.
https://habr.com/ru/articles/962632/comments/#comment_29055506 - так на кого должен ориентироваться разработчик?
Да-да, синим цветом даже на синем фоне. Они такое любят.
Особенно любят фотки на фоне ;)
Просто не надо извращаться с фонами.
Серьёзно: на кой чёрт нам всё это делать?!?
Ведь намного удобнее задать риторический вопрос, проигнорировав аргументы второй стороны, вместо того, чтобы их разобрать.
О том, почему лучше
Купе. На нижней лежит человек, читает газету вдруг сверху начинает падать гавно, ну он подрывается, и толкая мужика, кричит:
Мужчина, проснитесь, вы обосрались! Тот, меланхолично:
А я и не сплю...



Просто используй кнопку