
false должен было бы меняться на true.)Заодно обновил документацию в MDN, чтобы эти два пункта были заметнее — я не знал о них именно из-за того, что они не были хорошо описаны. Редактируйте MDN тоже, если видите, что что-то можно улучшить :–)
Size: a a a

false должен было бы меняться на true.)
IntersectionObserver, но другим способом. Придётся посчитать высоту шапки, убрать опцию root и задать опцию rootMargin. Это менее удобно — если высота шапки поменяется, придётся создавать IntersectionObserver заново — но работает.resize и scroll — а это прилично медленнее.)




<input type="month"> — поле ввода для выбора месяца, которое описано в спецификации, но почти нигде не документировано. Выглядит круто (это в Microsoft Edge):
<input type="date"> — работает в Chrome и Edge, но не работает в Firefox и Safari.<input type="month" placeholder="YYYY-MM" pattern="\d{4}-\d{2}">placeholder и pattern применятся, только если браузер не будет поддерживать <input type="date">, и подскажут пользователю о формате поля)

onclick вместо ссылок, а я расскажу, как её избегать.div-ы. Как на Яндекс-Музыке (клик на «Жанры» поменяет урл, но это просто div):
<a>).<button>).div-ы для кликабельных элементов лучше вообще не использовать. Преимущество кнопок перед div-ами в том, что они 1) нормально фокусируются и активируются с клавиатуры и 2) произносятся как «Кнопка» в экранных читалках. Есть и недостаток — придётся дописать несколько CSS-cвойств, чтобы убрать рамку и фон — но преимущества важнее.


jsx-a11y/no-static-element-interactions<a> он тоже считает статичным почему-то


IntersectionObserver срабатывает с задержкой. (IntersectionObserver — это штука в браузерах, которая позволяет определять, когда элемент пересекает экран или другой элемент.)window.addEventListener('scroll') с getBoundingClientRect() и тормозит. Я надеялся, что Intersection Observer сможет заменить слушатель события, но придётся искать другие способы.