`value` i `max` muszą opisywać realny zakres pracy; bez `value` element przechodzi w stan nieokreślony.
Dostępna etykieta jest obowiązkowa w praktyce - sam tekst wewnątrz znacznika to tylko fallback.
Do pomiarów w znanej skali lepiej pasuje ``, a do nietypowego wyglądu czasem lepszy będzie własny komponent.
Przy własnym stylu trzeba testować przynajmniej Chrome, Safari i Firefox, bo renderowanie nie jest identyczne.
W JavaScript aktualizujesz `value` i `max`, a stan nieokreślony uzyskujesz przez usunięcie atrybutu `value`.
Kiedy `` naprawdę pasuje do interfejsu
Ja traktuję ten element jako komunikat o wykonaniu pracy, a nie jako dekorację. Jeśli użytkownik czeka na zakończenie zadania i możesz pokazać, że jesteś na przykład na 3 z 10 kroków albo na 72% transferu, `
Rozwiązanie
Kiedy użyć
Największa zaleta
Ograniczenie
Gdy zadanie trwa i znasz jego postęp
Ma sens semantyczny i jest czytelny dla technologii wspomagających
Nie nadaje się do opisu dowolnej wartości liczbowej
Gdy pokazujesz wynik na znanej skali, np. zużycie zasobów
Dobrze opisuje pomiar
Nie oznacza trwającego zadania
Własny komponent
Gdy potrzebujesz bardzo niestandardowego wyglądu lub animacji
Pełna kontrola nad UX i stylem
Musisz sam zadbać o semantykę, stan i dostępność
W praktyce ta granica ma znaczenie częściej, niż się wydaje. Pasek postępu użyty do pokazania poziomu baterii albo obciążenia serwera wygląda znajomo, ale semantycznie jest po prostu zły. Żeby użyć elementu poprawnie, trzeba jeszcze opanować jego atrybuty i stan nieokreślony.
Jak działają `value`, `max` i stan nieokreślony
Najprostszy model jest taki: `
Ja zwykle polecam wersję procentową, bo jest łatwiejsza do utrzymania w zespole. Warto też pamiętać, że dla tego elementu minimum zawsze wynosi 0 i nie ma tu miejsca na atrybut `min`. Jeśli chcesz wrócić z trybu nieokreślonego do określonego, nie ustawiasz pustego `value` - po prostu usuwasz ten atrybut.
const bar = document.querySelector('progress');
bar.max = 100;
bar.value = 42;
// przejście do stanu nieokreślonego
bar.removeAttribute('value');
Ten model jest prosty, ale to właśnie prostota chroni przed błędami w interfejsie. Gdy zakres jest poprawny, znacznik staje się też dużo łatwiejszy do opisania dla użytkowników korzystających z czytników ekranu.
Dostępność nie jest dodatkiem
W praktyce najczęstszy błąd przy pasku postępu to brak porządnej etykiety. Sam tekst umieszczony między tagami nie jest pełnowartościowym opisem dostępności - to tylko fallback dla starszych przeglądarek. MDN zwraca uwagę, że najlepiej użyć `
Jeśli pasek opisuje ładowanie konkretnej części strony, warto pójść krok dalej. Ja wtedy łączę go z `aria-busy` na kontenerze oraz `aria-describedby`, żeby technologia wspomagająca rozumiała, że aktualizuje się fragment interfejsu, a nie cały dokument.
Warto też wiedzieć, że natywnego `
FAQ - Najczęstsze pytania
Element `` służy do wizualizacji postępu trwającego zadania, np. wysyłania pliku czy ładowania danych. Pokazuje, ile pracy zostało już wykonane, a ile jeszcze pozostało.
Użyj `` dla zadań w toku, gdzie znasz postęp (np. 72% ukończenia). `` jest lepszy do wyświetlania wartości na znanej skali, np. zużycia baterii, gdzie nie ma trwającego zadania.
Kluczowe jest dodanie czytelnej etykiety za pomocą `` lub atrybutów `aria-label`/`aria-labelledby`. Tekst wewnątrz znacznika `` to tylko fallback dla starszych przeglądarek.
Natywny wygląd różni się. Używaj `appearance: none;` i pseudo-elementów (`::-webkit-progress-bar`, `::-moz-progress-bar`) do spójnego stylowania. Pamiętaj o testowaniu w Chrome, Safari i Firefox.
W JS aktualizujesz atrybuty `value` i `max`. Aby ustawić stan nieokreślony (gdy postęp jest nieznany), usuń atrybut `value` za pomocą `removeAttribute('value')`.
Oceń artykuł
Ocena: 0.00 Liczba głosów: 0
Tagi:
html progress html progress bar stylowanie jak używać html progress element progress dostępność aktualizacja progress bar javascript
Nazywam się Tymoteusz Sobczak i mam 9-letnie doświadczenie w programowaniu webowym. Moja przygoda z tą dziedziną zaczęła się od fascynacji tworzeniem stron internetowych, co z czasem przerodziło się w pasję do dzielenia się wiedzą i pomagania innym w odkrywaniu tajników programowania. Lubię wyjaśniać złożone zagadnienia w przystępny sposób, co pozwala moim czytelnikom lepiej zrozumieć temat i rozwijać swoje umiejętności.
Pisząc dla jscwiczenia.pl, koncentruję się na dostarczaniu aktualnych i rzetelnych informacji, które są zrozumiałe nawet dla osób dopiero zaczynających swoją przygodę z programowaniem. Staram się porównywać różne źródła, śledzić najnowsze trendy i organizować wiedzę w sposób, który ułatwia naukę. Moim celem jest, aby każdy mógł znaleźć tu przydatne materiały, które pomogą mu w budowaniu kariery w programowaniu webowym.