| Termin | Definicja |
|---|---|
| brak alternatywnych rozwiązań dla JS-disabled users | Brak alternatywnych rozwiązań dla użytkowników z wyłączonym JavaScript to usterka dostępności ograniczająca funkcjonalność strony dla tej grupy odbiorców. Brak alternatywnych rozwiązań dla użytkowników z wyłączonym JavaScript – czym jest ten problemBrak alternatywnych rozwiązań dla użytkowników z wyłączonym JavaScript oznacza, że strona internetowa została zaprojektowana tak, jakby uruchamianie skryptów w przeglądarce było zawsze dostępne. W takiej sytuacji podstawowe treści, formularze, menu, wyszukiwarki albo procedury zakupowe mogą być obsługiwane wyłącznie za pomocą kodu JavaScript. Po jego zablokowaniu część interfejsu przestaje reagować, nie pojawia się właściwa treść albo użytkownik nie otrzymuje żadnego komunikatu wyjaśniającego, jak wykonać daną czynność inną drogą. Nie chodzi wyłącznie o całkowity brak działania witryny. Problem może mieć także łagodniejszą postać: otwiera się strona główna, lecz nie można przejść do kolejnego kroku, rozwinąć nawigacji, wysłać zapytania, sprawdzić informacji o usłudze lub odczytać zawartości umieszczonej w dynamicznym komponencie. Jeśli użytkownik nie ma możliwości skorzystania z wersji podstawowej, zwykłych odnośników, formularza działającego bez skryptów albo czytelnej informacji zastępczej, funkcjonalność witryny staje się zależna od konkretnej konfiguracji przeglądarki. Wyłączenie JavaScript może wynikać z ustawień prywatności, rozszerzeń blokujących skrypty, polityki bezpieczeństwa organizacji, awarii przeglądarki lub korzystania z urządzenia o ograniczonych możliwościach. Z tego powodu zapewnienie alternatywnego dostępu nie powinno być traktowane jako rozwiązanie przeznaczone dla jednej, wąskiej grupy. Jest to element odpornego projektowania serwisu, który pomaga utrzymać dostęp do podstawowych informacji również wtedy, gdy warstwa interaktywna nie może zostać załadowana. Znaczenie techniczne i porównanie z poprawnie zaprojektowaną stronąW dobrze przygotowanej witrynie JavaScript rozszerza działanie podstawowego dokumentu HTML, ale nie musi być jedynym sposobem dotarcia do najważniejszych treści. Odnośnik prowadzący do podstrony powinien pozostawać prawdziwym odnośnikiem, a nie elementem, który dopiero po kliknięciu uruchamia funkcję skryptową. Formularz powinien mieć określony adres docelowy i mechanizm obsługi po stronie serwera, natomiast komunikaty o błędach powinny być dostępne także wtedy, gdy nie działa walidacja wykonywana w przeglądarce. Można wyróżnić kilka poziomów zależności od skryptów:
Najbardziej ryzykowny jest trzeci wariant, jeżeli nie przewidziano wersji awaryjnej. Sam fakt wykorzystania nowoczesnego frameworka nie stanowi jeszcze błędu, ale projekt powinien uwzględniać sposób dostarczenia kluczowych informacji bez uruchamiania skryptów. W praktyce może to oznaczać przygotowanie renderowania po stronie serwera, użycie zwykłych adresów URL, udostępnienie osobnych podstron dla ważnych funkcji oraz zachowanie logicznej kolejności elementów w źródłowym HTML. Istotne jest także odróżnienie braku JavaScript od błędu wynikającego z niedostępnego pliku skryptowego. W obu przypadkach efekt dla odbiorcy może wyglądać podobnie, jednak przyczyna jest inna. Wyłączenie skryptów jest świadomym ustawieniem środowiska, natomiast brak pliku, nieprawidłowa ścieżka, blokada zasobu albo wyjątek podczas wykonywania kodu wskazuje na usterkę wdrożeniową. Test powinien obejmować oba scenariusze, ponieważ strona pozornie działająca w typowej konfiguracji może utracić funkcje także po chwilowej awarii jednego zasobu. Typowe problemy i błędy prowadzące do braku alternatywyCzęstym błędem jest zastępowanie standardowych elementów HTML kontrolkami obsługiwanymi wyłącznie przez zdarzenie JavaScript. Przycisk stylizowany jak odnośnik może nie prowadzić do żadnego adresu, a element otwierający menu może nie mieć dostępnej wersji rozwiniętej w kodzie dokumentu. Po zablokowaniu skryptów użytkownik widzi wtedy dekoracyjny interfejs, lecz nie otrzymuje funkcjonalnego przejścia do kolejnej części serwisu. Problemy mogą dotyczyć również formularzy. Walidacja wykonywana wyłącznie po stronie klienta nie powinna być jedynym zabezpieczeniem przed błędnymi danymi. Gdy skrypt nie działa, pola mogą przestać być wysyłane, komunikat o błędzie może się nie pojawić albo formularz może pozostawać bez widocznej reakcji. Rozwiązaniem jest walidacja po stronie serwera, zachowanie etykiet pól, przekazanie zrozumiałego komunikatu oraz ponowne wyświetlenie danych, które można bezpiecznie zachować po nieudanej próbie. Do innych powtarzających się przyczyn należą:
Weryfikacja powinna rozpocząć się od wyłączenia JavaScript w przeglądarce oraz od otwarcia strony w środowisku, w którym skrypty są blokowane rozszerzeniem lub polityką bezpieczeństwa. Następnie należy przejść przez najważniejsze ścieżki: wejście na stronę główną, otwarcie menu, dotarcie do kontaktu, odczytanie oferty, wysłanie formularza i przejście między podstronami. Warto sprawdzić również kod odpowiedzi serwera, strukturę nagłówków, obecność tekstu w dokumencie HTML oraz to, czy wszystkie istotne adresy można otworzyć bez wcześniejszego wykonania skryptu. Kiedy warto zgłosić stronę do serwisu - brak alternatywnych rozwiązań dla JS-disabled usersZgłoszenie jest uzasadnione, gdy po wyłączeniu JavaScript nie można odczytać ważnych informacji, skontaktować się z firmą, przejść do podstrony albo zakończyć podstawowej procedury. Szczególnej uwagi wymagają witryny, w których problem występuje tylko na części urządzeń lub u osób korzystających z restrykcyjnych ustawień prywatności. Taki objaw może wskazywać zarówno na brak wersji alternatywnej, jak i na błędną konfigurację skryptów, zasobów, przekierowań lub formularzy. W ramach zgłoszenia warto przekazać adres problematycznej podstrony, nazwę używanej przeglądarki, informację o wyłączeniu JavaScript oraz opis czynności, której nie można wykonać. Pomocne bywają także zrzut ekranu, komunikat z konsoli i wskazanie, czy problem pojawia się po kliknięciu konkretnego elementu. Dzięki temu można odróżnić świadomy brak obsługi od sytuacji, w której skrypt jest blokowany przez błąd techniczny lub niepoprawne ładowanie zasobów. W Warszawskim Pogotowiu Komputerowym 24/7 można zlecić sprawdzenie, czy problem wynika z konfiguracji urządzenia, przeglądarki, rozszerzeń blokujących, czy z samej konstrukcji witryny. Przydatne jest zwłaszcza przeprowadzenie testu na kilku konfiguracjach oraz ustalenie, które funkcje powinny zostać przeniesione do podstawowej warstwy HTML, a które mogą pozostać dodatkiem uruchamianym przez JavaScript. Po diagnozie zaleca się przygotowanie listy funkcji krytycznych i określenie dla każdej z nich niezależnej ścieżki dostępu. Dla treści informacyjnych będzie to zwykła podstrona, dla nawigacji poprawne odnośniki, dla formularzy obsługa po stronie serwera, a dla elementów dynamicznych odpowiedni komunikat lub wersja uproszczona. Takie podejście ogranicza ryzyko utraty kontaktu z użytkownikiem i pozwala zachować użyteczność serwisu także wtedy, gdy skrypty są zablokowane, nie załadowały się albo zostały odrzucone przez środowisko bezpieczeństwa. |