Логотип Зефирнет

Доступные формы с псевдоклассами

Дата:

Привет всем вам, замечательные разработчики! В этом посте я собираюсь познакомить вас с созданием простой контактной формы с использованием семантического HTML и замечательного псевдокласса CSS, известного как :focus-within, :focus-within class позволяет лучше контролировать фокус и дает пользователю понять, что именно здесь он находится. Прежде чем мы начнем, давайте разберемся в сути того, что такое веб-доступность.


Доступность формы?

Вы, скорее всего, повсюду слышали термин «доступность» или нумероним, a11y. Что это значит? Это отличный вопрос, на который так много ответов. Когда мы смотрим на физический мир, доступность означает такие вещи, как наличие контейнеров для острых предметов в ванных комнатах вашего бизнеса, наличие пандусов для людей, пользующихся колесами, а также наличие под рукой периферийных устройств, таких как клавиатуры с большим шрифтом, для всех, кто в них нуждается.

На этом спектр доступности не заканчивается: у нас есть цифровая доступность, о которой нам также необходимо знать, причем не только для внешних пользователей, но и для внутренних коллег. Цветовой контраст – это низко висящий фрукт что мы должны быть в состоянии пресечь это в зародыше. На наших рабочих местах мы следим за тем, чтобы, если кому-то из сотрудников понадобятся вспомогательные технологии, такие как программа чтения с экрана, мы установили и предоставили их. Есть много вещей, которые необходимо учитывать. В этой статье основное внимание будет уделено доступности Интернета путем сохранения WCAG (руководство по обеспечению доступности веб-контента) в виду.

MDN (Сеть разработчиков Mozilla)

Ассоциация :focus-within Псевдокласс CSS соответствует элементу, если элемент или любой из его потомков находятся в фокусе. Другими словами, он представляет элемент, который сам соответствует псевдоклассу :focus или имеет потомка, которому соответствует :focus. (Сюда входят потомки теневых деревьев.)

Этот псевдокласс действительно удобен, когда вы хотите подчеркнуть, что пользователь на самом деле взаимодействует с элементом. Например, вы можете изменить цвет фона всей формы. Или, если фокус перемещается на ввод, вы можете сделать метку элемента ввода жирным и крупнее, когда фокус перемещается на этот ввод. То, что происходит ниже в фрагментах кода и примерах, делает форму доступной. :focus-within это всего лишь один из способов использовать CSS в своих интересах.

Как сфокусироваться

Фокус в отношении доступности и взаимодействия с Интернетом — это визуальный индикатор того, что с чем-то взаимодействуют на странице, в пользовательском интерфейсе или внутри компонента. CSS может определить, когда интерактивный элемент находится в фокусе.

" :focus Псевдокласс CSS представляет элемент (например, ввод формы), получивший фокус. Обычно он срабатывает, когда пользователь щелкает или касается элемента или выбирает его с помощью клавиши Tab на клавиатуре».

MDN (Сеть разработчиков Mozilla)

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

Фокус написан так, и его можно стилизовать в соответствии с вашим брендом, если вы решите его стилизовать.

:focus {
  * / INSERT STYLES HERE /*
}

Что бы вы ни делали, никогда не устанавливайте план на 0 or none. Это приведет к удалению видимого индикатора фокусировки для всех на протяжении всего процесса. Если вам нужно удалить фокус, вы можете это сделать, но обязательно добавьте его позже. Когда вы удаляете фокус из CSS или устанавливаете контур на 0 or none, кольцо фокусировки будет удалено для всех ваших пользователей. Это часто наблюдается при использовании сброса CSS. Сброс CSS приведет к сбросу стилей на пустой холст. Таким образом, вы отвечаете за пустой холст и можете его стилизовать по своему желанию. Если вы хотите использовать сброс CSS, проверьте Перезагрузка Джоша Комо.

*НЕ ДЕЛАЙТЕ то, что описано ниже!

:focus {
  outline: 0;
}

:focus {
  outline: none;
}


Загляни внутрь!

Эта статья посвящена одному из самых крутых способов стилизации фокуса с помощью CSS. Если вы еще не проверили :focus-within псевдокласс, обязательно посмотрите! Когда дело доходит до использования семантической разметки и CSS, есть много скрытых сокровищ, и это одна из них. Многие вещи, которые упускаются из виду, доступны по умолчанию, например, семантическая разметка доступна по умолчанию и должна всегда использоваться поверх элементов div.

<header>
  <h1>Semantic Markup</h1>
  <nav>
    <ul>
      <li><a href="/ru/">Home</a></li>
      <li><a href="/ru/about">About</a></li>
    </ul>
  </nav>
</header>

<section><!-- Code goes here --></section>

<section><!-- Code goes here --></section>

<aside><!-- Code goes here --></aside>

<footer><!-- Code goes here --></footer>

Ассоциация header, nav, main, section, asideкачества footer все это семантические элементы. h1 и ul также семантичны и доступны.

Если нет необходимости создавать пользовательский компонент, то div можно использовать в сочетании с ARIA (Доступные многофункциональные интернет-приложения). Мы можем более глубоко погрузиться в ARIA в следующем посте. А пока давайте сосредоточимся… посмотрим, что я там сделал… на этом псевдоклассе CSS.

Ассоциация :focus-within псевдокласс позволяет вам выбрать элемент, когда любой элемент-потомок, который он содержит, имеет фокус.


:focus-within В бою!

HTML

<form>
  <div>
    <label for="firstName">First Name</label><input id="firstName" type="text">
  </div>
  <div>
    <label for="lastName">Last Name</label><input id="lastName" type="text">
  </div>
  <div>
    <label for="phone">Phone Number</label><input id="phone" type="text">
  </div>
  <div>
    <label for="message">Message</label><textarea id="message"></textarea>
  </div>
</form>

CSS

form:focus-within {
  background: #ff7300;
  color: black;
  padding: 10px;
}

В приведенном выше примере кода будет добавлен оранжевый цвет фона, некоторые отступы и изменен цвет меток на черный.

Конечный продукт выглядит примерно так, как показано ниже. Конечно, возможности изменить стиль безграничны, но это должно помочь вам сделать Интернет более доступным для всех!

Первый пример фокуса внутри CSS-класса с выделением фона формы и изменением цвета текста метки.

Еще один вариант использования :focus-within можно было бы сделать надписи жирным шрифтом, изменить цвет или увеличить их для пользователей со слабым зрением. Пример кода для этого будет выглядеть примерно так, как показано ниже.

HTML

<form>
  <h1>:focus-within part 2!</h1>
  <label for="firstName">First Name: <input name="firstName" type="text" /></label>
  <label for="lastName">Last Name: <input name="lastName" type="text" /></label>
  <label for="phone">Phone number: <input type="tel" id="phone" /></label>
  <label for="message">Message: <textarea name="message" id="message"/></textarea></label>
</form>

CSS

label {
  display: block;
  margin-right: 10px;
  padding-bottom: 15px;
}

label:focus-within {
  font-weight: bold;
  color: red;
  font-size: 1.6em;
}
Покажем, как выделить жирным шрифтом, изменить цвет и размер шрифта меток в форме с помощью :focus-within.

:focus-within также имеет отличную поддержку браузеров по всем направлениям, согласно Могу ли я использовать.

Сосредоточьтесь на поддержке браузером псевдоклассов CSS в зависимости от того, могу ли я использовать веб-сайт.

Заключение

Создание удивительного и доступного пользовательского опыта всегда должно быть главным приоритетом при поставке программного обеспечения, причем не только снаружи, но и внутри компании. Мы, разработчики, вплоть до высшего руководства, должны осознавать проблемы, с которыми сталкиваются другие, и то, как мы можем быть послами веб-платформы, чтобы сделать ее лучше.

Использование таких технологий, как семантическая разметка и CSS, для создания инклюзивных пространств является важной частью улучшения Интернета. Давайте продолжим двигаться вперед и менять жизни.

Посетите еще один замечательный ресурс здесь, на CSS-Tricks. используя :focus-inнутри.

Spot_img

Последняя разведка

Spot_img