Skrypt widgetu dostępności

Wymagany poziom znajomości JavaScript

Aby skonfigurować i wdrożyć skrypt dostępności WCAG, wystarczy podstawowa znajomość JavaScript, obejmująca:

  • Dodawanie skryptów do stron internetowych.
  • Tworzenie i modyfikowanie obiektów JavaScript.
  • Przekazywanie argumentów do funkcji.
  • Praca z selektorami CSS.

Nie jest wymagana zaawansowana wiedza programistyczna – skrypt został zaprojektowany tak, aby był łatwy w użyciu dla osób niebędących ekspertami w kodowaniu.


Struktura i działanie skryptu

Podstawowy szkielet skryptu:

<script>
    (function (w, d, s, l, t, c = {}) {
        w[l] = c;
        w[l].token = t;
        var f = d.getElementsByTagName(s)[0], 
        j = d.createElement(s), 
        a = new Date().getTime();
        j.async = true;
        j.src = '//wcag.dock.codes/accessibility/' + t + '/start.js?t=' + a;
        f.parentNode.insertBefore(j, f);
    })(window, document, 'script', 'accessibility', '_TOKEN_', {_KONFIGURACJA_});
</script>

Parametry skryptu:

  1. '_TOKEN_'
    • Opis: Unikalny token, który możesz wygenerować za darmo w swoim koncie DockWCAG.
    • Wymagane: Tak.
    • Przykład: 'abcde12345'.
  2. {_KONFIGURACJA_}
    • Opis: Obiekt zawierający szczegóły dotyczące działania widgetu.
    • Wymagane: Nie, ale zalecane dla dostosowania funkcji do potrzeb.
    • Możliwe parametry zostały opisane poniżej.

Parametry konfiguracji {_KONFIGURACJA_}

Obiekt pozwala dostosować działanie widgetu. Poniżej opisano dostępne opcje w przystępnej formie.

1. Widget

Parametr Typ Opis Wartości
widget Boolean Określa, czy wyświetlić gotowy widget dostępności. true, false

2. Opcje widgetu

Klucz Typ Opis Dostępność w wersji
contrast Boolean Włącza funkcję wysokiego kontrastu. Podstawowa, Premium
invertColor Boolean Włącza inwersję kolorów. Podstawowa, Premium
fontSize Boolean Umożliwia zmianę rozmiaru czcionki. Podstawowa, Premium
underline Boolean Podkreśla linki na stronie. Podstawowa, Premium
letterSpacing Boolean Zwiększa odstępy między literami. Premium
lineHeight Boolean Zwiększa wysokość linii w tekście. Premium
textToSpeech Boolean Dodaje funkcję czytania tekstu na głos. Premium
saturation Boolean Regulacja nasycenia kolorów. Premium
enlargeCursor Boolean Powiększa wskaźnik kursora. Premium
hideMedia Boolean Ukrywa elementy multimedialne na stronie. Premium
disableAnimations Boolean Wyłącza animacje na stronie. Premium
showLine Boolean Dodaje linię ułatwiającą skupienie się na czytaniu. Premium
dyslexic Boolean Zmienia czcionkę na przyjazną dla dysleksji. Premium

Uwaga: Funkcje oznaczone jako „Premium” są dostępne wyłącznie w wersji zaawansowanej.


3. Pozycja widgetu

Parametr Typ Opis Wartości
position String Ustawia domyślną pozycję przycisku aktywującego widget. "right", "left"

4. Dostosowanie kolorów

Klucz Typ Opis Przykład wartości
primary String Określa główny kolor widgetu. #0021c8
secondary String Określa kolor pomocniczy widgetu. #000243

Przykład obiektu

colors: {primary: '#0021c8', secondary: '#000243'}

Te parametry pozwalają na pełne dostosowanie wyglądu widgetu, aby pasował do kolorystyki strony, na której jest umieszczony. Kolory są przekazywane w formacie hex (np. #0021c8), który jest najczęściej stosowany w stylach CSS i pozwala na precyzyjne określenie odcieni.

5. Selektory własnych przycisków

Obiekt selectors pozwala przypisać własne przyciski do funkcji dostępności.
Każdy klucz odpowiada konkretnej funkcji, a wartość to selektor CSS wskazujący element HTML.

Klucz Typ Opis
invertColor String Przycisk do włączania inwersji kolorów.
contrast String Przycisk do włączania wysokiego kontrastu.
increase String Przycisk do zwiększania czcionki.
decrease String Przycisk do zmniejszania czcionki.
textResize String Przycisk do ogólnej zmiany rozmiaru tekstu.
showLine String Przycisk do włączania widocznej linii podkreślenia.
lineHeight String Przycisk do zmiany wysokości linii tekstu.
letterSpacing String Przycisk do zwiększania odstępów między literami.
underline String Przycisk do podkreślania linków.
textToSpeech String Przycisk do włączania funkcji czytania tekstu na głos.
saturation String Przycisk do regulacji nasycenia kolorów.
enlargeCursor String Przycisk do powiększania wskaźnika kursora.
hideMedia String Przycisk do ukrywania elementów multimedialnych.
dyslexic String Przycisk do zmiany czcionki na przyjazną dla dysleksji.
disableAnimations String Przycisk do wyłączania animacji.
motorImpaired String Przycisk aktywujący profil dostosowany do użytkowników z ograniczeniami motorycznymi.
adhd String Przycisk aktywujący profil wspierający osoby z ADHD.
blind String Przycisk aktywujący profil wspierający użytkowników niewidomych.
cognitiveAndLearning String Przycisk aktywujący profil dla osób z trudnościami poznawczymi.
colorBlind String Przycisk aktywujący profil dla osób z daltonizmem.
dyslexia String Przycisk aktywujący profil wspierający użytkowników z dysleksją.
epileptic String Przycisk aktywujący profil wspierający użytkowników z epilepsją.
lowVision String Przycisk aktywujący profil wspierający osoby z niskim widzeniem.
reset String Przycisk resetujący wszystkie ustawienia.
statement String Przycisk wyświetlający deklarację dostępności.

Przykładowy obiekt selectors:

{
    "invertColor": ".btn-invert",
    "contrast": ".btn-contrast",
    "fontSize": ".btn-font-size",
    "textToSpeech": ".btn-tts"
}

Przykłady wdrożenia

Prosta konfiguracja z gotowym widgetem

<script>
    (function (w, d, s, l, t, c = {}) {
        w[l] = c;
        w[l].token = t;
        var f = d.getElementsByTagName(s)[0], 
        j = d.createElement(s), 
        a = new Date().getTime();
        j.async = true;
        j.src = '//wcag.dock.codes/accessibility/' + t + '/start.js?t=' + a;
        f.parentNode.insertBefore(j, f);
    })(window, document, 'script', 'accessibility', 'abcde12345', {
        widget: true,
        position: 'right',
        colors: {primary: '#0021c8', secondary: '#000243'},
        options: {contrast: true, underline: true}
    });
</script>

Zaawansowana konfiguracja z własnymi selektorami

<script>
    (function (w, d, s, l, t, c = {}) {
        w[l] = c;
        w[l].token = t;
        var f = d.getElementsByTagName(s)[0], 
        j = d.createElement(s), 
        a = new Date().getTime();
        j.async = true;
        j.src = '//wcag.dock.codes/accessibility/' + t + '/start.js?t=' + a;
        f.parentNode.insertBefore(j, f);
    })(window, document, 'script', 'accessibility', 'abcde12345', {
        widget: false,
        selectors: {
            showLine: ".wcag-focus",
            lineHeight: ".wcag-line-height",
            letterSpacing: ".wcag-letter-spacings",
            underline: ".wcag-underline",
            textToSpeech: ".wcag-text-to-speech",
            saturation: ".wcag-saturation",
            reset: ".wcag-reset",
        }
    });
</script>

Uwagi końcowe

  • Przed wdrożeniem upewnij się, że Twój unikalny token jest poprawny.
  • Wersje premium oferują dodatkowe funkcje, które mogą znacząco poprawić dostępność.
  • Własne selektory umożliwiają pełną kontrolę nad funkcjami, dzięki czemu możesz dostosować je do projektu strony.