Как создать доступный индикатор выполнения с помощью React
Убедитесь, что индикаторы выполнения вашего веб-приложения выглядят хорошо и могут использоваться всеми.
Индикаторы выполнения отлично подходят для вовлечения пользователей, поскольку они указывают на цель, которую необходимо достичь. Вместо того, чтобы смотреть на веб-страницу, ожидающую ресурса, вы видите заполняющийся индикатор выполнения. Индикаторы выполнения не должны быть доступны только зрячим пользователям. Каждый должен легко понять ваш индикатор выполнения.
Итак, как создать доступный индикатор выполнения с помощью React?
Создайте компонент индикатора выполнения
Создайте новый компонент с именем ProgressBar.js и добавьте следующий код:
const ProgressBar = ({progress}) => {
return (
<div>
<div role="progressbar"
aria-valuenow={progress}
aria-valuemin={0}
aria-valuemax={100}>
<span>{`${progress}%`}</span>
</div>
</div>
);
};
export default ProgressBar;
Первый элемент div — это контейнер, а второй элемент div — это фактический индикатор выполнения. Элемент span содержит процент индикатора выполнения.
В целях доступности второй div имеет следующие атрибуты:
- Роль прогрессбара.
- aria-valuenow, чтобы указать текущее значение индикатора выполнения.
- aria-valuemin, чтобы указать минимальное значение индикатора выполнения.
- aria-valuemax, чтобы указать максимальное значение индикатора выполнения.
Атрибуты aria-valuemin и aria-valuemax не нужны, если максимальное и минимальное значения индикатора выполнения равны 0 и 100, поскольку HTML по умолчанию использует эти значения.
Стилизация индикатора выполнения
Вы можете стилизовать индикатор выполнения, используя встроенные стили или библиотеку CSS-in-JS, например styled-comments. Оба эти подхода обеспечивают простой способ передачи реквизитов из компонента в CSS.
Вам нужна эта функция, потому что ширина индикатора выполнения зависит от значения прогресса, переданного в качестве реквизита.
Вы можете использовать следующие встроенные стили:
const container = {
height: 20,
width: "100%",
backgroundColor: "#fff",
borderRadius: 50,
margin: 50
}
const bar = {
height: "100%",
width: `${progress}%`,
backgroundColor: "#90CAF9",
borderRadius: "inherit",
}
const label = {
padding: "1rem",
color: "#000000",
}
Измените возвращаемую часть компонента, включив в нее стили, как показано ниже:
<div style={container}>
<div style={bar} role="progressbar"
aria-valuenow={progress}
aria-valuemin={0}
aria-valuemax={100}>
<span style={label} >{`${progress}%`}</span>
</div>
</div>
Отобразите индикатор выполнения следующим образом:
<ProgressBar progress={50}/>
Отобразится индикатор выполнения с завершением на 50 процентов.
Создание компонентов в React
Теперь вы можете создать доступный индикатор выполнения с процентами, который можно повторно использовать в любой части вашего приложения. С помощью React вы можете создавать подобные независимые компоненты пользовательского интерфейса и использовать их в качестве строительных блоков сложного приложения.