Generator dostępnego spinera CSS
Kręcący się pierścień nic nie znaczy dla osoby korzystającej z czytnika ekranu, a ciągły ruch może przeszkadzać osobom wrażliwym na animacje. Wygeneruj tutaj spinner, a następnie dodaj poniżej znaczniki i regułę ograniczenia ruchu.
Jak zrobić dostępny spinner
-
1
Wygeneruj pierścień
Ustaw Rozmiar (px), Grubość, Kolor i Prędkość (s) w narzędziu, a następnie skopiuj CSS.
-
2
Sprawdź kontrast kolorów
Wybierz kolor łuku, który wyraźnie odcina się od jasnoszarego toru i od tła strony.
-
3
Dodaj znaczniki statusu
Nadaj elementowi spinera rolę i etykietę, tak jak pokazano na tej stronie.
-
4
Dodaj regułę ograniczenia ruchu
Wklej zapytanie o media poniżej wygenerowanego CSS.
Co robi wygenerowany CSS, a czego nie obejmuje
Narzędzie daje część wizualną: obramowany okrąg i obrót. Sam wizualny wskaźnik nie ma znaczenia dla technologii asystujących, ponieważ element jest pusty. Dostępność zapewniają znaczniki i jedna dodatkowa reguła CSS, którą dodajesz wokół nich.
Znaczniki informujące o stanie
<div class="loader" role="status" aria-label="Ładowanie wyników"></div>
role="status" oznacza element jako region na żywo, dzięki czemu wiele czytników ekranu ogłasza jego etykietę po pojawieniu się. aria-label powinna opisywać, co się ładuje, na przykład „Ładowanie wyników” lub „Zapisywanie”, a nie ogólnikowe słowo. Usuń element po zakończeniu pracy i pokaż nową treść.
Możesz też umieścić widoczny tekst obok pierścienia. Widoczny tekst pomaga wszystkim, także osobom, które słabo widzą ruch.
Uwzględnij ograniczenie ruchu
Niektórzy odwiedzający włączają ustawienie systemowe, które prosi strony o ograniczenie animacji. Uszanuj je, dodając zapytanie o media po wygenerowanym CSS:
@media (prefers-reduced-motion: reduce) {
.loader {
animation-duration: 3s;
}
}
Ta reguła spowalnia obrót zamiast go usuwać, więc wskaźnik nadal wygląda na żywy, ale bez szybkiego ruchu. Jeśli wolisz sygnał statyczny, użyj animation: none; i pokaż obok pierścienia tekst „Ładowanie”.
Lista kontrolna kontrastu i rozmiaru
| Sprawdzenie | Do czego dążyć |
|---|---|
| Łuk na tle strony | Wyraźnie widoczny, najlepiej współczynnik kontrastu 3:1 lub więcej |
| Łuk na szarym torze | Wyraźnie odrębny, aby można było śledzić łuk wzrokiem |
| Rozmiar | Co najmniej 24 px dla elementów, które odwiedzający musi zauważyć |
| Prędkość | Od 0,8 do 1,5 sekundy na jeden obrót |
Ograniczenia
- Generator sam wybiera kolor toru (
#eee). Zmień go w wklejonym CSS, jeśli tło strony jest podobne. - Bardzo duża wartość prędkości sprawia, że pierścień migocze. Unikaj wartości poniżej około 0,5 sekundy.
- Nie polegaj wyłącznie na spinerze przy długim oczekiwaniu. Napisz tekstem, co się dzieje.
Szybki test
Włącz w systemie opcję ograniczenia ruchu i przeładuj stronę: pierścień powinien obracać się wolniej. Następnie przejdź po stronie klawiszem Tab, aby sprawdzić, czy spinner nigdy nie zabiera fokusu z elementu, z którego korzystał odwiedzający. Na koniec włącz czytnik ekranu i wywołaj raz stan ładowania, aby sprawdzić, czy etykieta jest ogłaszana po pojawieniu się elementu oraz czy nowa treść jest dostępna później.
Najczęściej zadawane pytania
Tylko wtedy, gdy dodasz znaczniki. Pusty element jest niemy, więc nadaj mu role=“status” i opisową aria-label.
To zapytanie o media w CSS, które działa, gdy odwiedzający poprosił urządzenie o ograniczenie animacji. Możesz z niego skorzystać, aby spowolnić lub zatrzymać spinner.
Obie opcje są dopuszczalne. Spowolnienie zachowuje wrażenie aktywności, a zatrzymanie jest najbezpieczniejszym wyborem, jeśli dodatkowo pokażesz komunikat tekstowy, np. „Ładowanie”.
Opisz czynność prostymi słowami, na przykład „Ładowanie wyników” lub „Zapisywanie zmian”. Unikaj niejasnych etykiet typu „spinner”.
Większy rozmiar i mocny kontrast ułatwiają zobaczenie spinera, ale nie zastępują etykiety tekstowej, którą odczytuje technologia asystująca.
Powiązane narzędzia
Generator konfiguracji webpack
Utwórz plik webpack.config.js dla webpacka 5 do czystego JavaScriptu, Reacta lub Vue: TypeScript, Babel, CSS lub Sass, obrazy, HtmlWebpackPlugin, serwer deweloperski i polecenie npm install.
Generator kolorów analogicznych
Twórz pięciokolorowe palety analogiczne z dowolnego koloru bazowego: klasyczną trójkę, dwie zewnętrzne barwy oraz wartości hex, RGB i HSL.
Walidator XSD
Waliduj dokument XML wobec schematu XSD i zgłaszaj niezgodności elementów i typów z dokładnymi numerami wierszy.
Generator fikcyjnych numerów telefonu
Generuj do 50 fikcyjnych numerów z oficjalnie zastrzeżonych zakresów w pięciu krajach.
Kod na obraz
Wklej kod, ustaw motyw, kolory, rozmiar czcionki, odstępy, nagłówek i numery wierszy, sprawdź podgląd canvas i pobierz PNG. Renderowanie zwykłego tekstu, bez podświetlania składni.
Dekoder Protocol Buffers
Dekoduj lokalnie bajty Protobuf z zapisu hex, Base64, Base64URL, tekstu lub pliku, analizuj pola i eksportuj prywatny raport.
Narzędzie jest dostępne w innych językach
- เครื่องมือสร้างสปินเนอร์ CSS ที่เข้าถึงได้ [TH]
- Trình tạo CSS spinner có khả năng truy cập [VI]
- Generator CSS Spinner yang Aksesibel [ID]
- مولّد دوّامة CSS يمكن الوصول إليها [AR]
- Barrierefreier CSS-Spinner Generator [DE]
- アクセシブルなCSSスピナー ジェネレーター [JA]
- Gerador de spinner CSS acessível [PT]
- Generador de spinner CSS accesible [ES]
- 접근성 있는 CSS 스피너 생성기 [KO]
- Generator för tillgänglig CSS-spinner [SV]
- Générateur de spinner CSS accessible [FR]
- Toegankelijke CSS-spinner generator [NL]
- Accessible CSS Spinner Generator [EN]
- Generatore di spinner CSS accessibile [IT]
- Генератор доступного CSS-спиннера [RU]
- Erişilebilir CSS Spinner Oluşturucu [TR]
- 无障碍 CSS 加载动画生成器 [ZH]