Strona nie działa? Zadzwoń.

Tworzenie Stron Rzeszów to marka firmy Prownex IT Services Sp. z o.o. (NIP 8161717256). Tworzymy strony internetowe i sklepy dla małych i średnich firm z Rzeszowa i okolic, utrzymujemy je na własnym hostingu prowde All Inclusive oraz naprawiamy, zabezpieczamy i przenosimy istniejące strony WordPress.

Dostępność strony WCAG 2.2: zero błędów w teście, a bariery zostały

Sprawdziliśmy dostępność strony firmowej narzędziami i ręcznie, z klawiatury. Narzędzia nie znalazły błędów, a ręczne przejście znalazło pięć barier, m.in. menu na telefonie wypuszczające fokus i formularz bez komunikatów błędów. Po poprawkach strona przechodzi oba sprawdziany.

Ilustracja: słuchawki, klawiatura z wyróżnionymi klawiszami, okno z formularzem i wyraźną ramką fokusu przy polu oraz lupa

Opublikowano: 03.11.2026 · stan na listopad 2026 · Redakcja Tworzenie Stron Rzeszów

W skrócie

Strona
firma usługowa, 9 podstron, formularz kontaktowy, galeria z powiększaniem zdjęć
Objaw
stara strona: zdjęcia-linki bez opisu, zablokowane powiększanie, brak skrótu „przejdź do treści”; po redesignie test automatyczny czysty, ale menu, formularz i potwierdzenie wysłania nie działały dobrze z klawiaturą i czytnikiem
Przyczyna
test automatyczny sprawdza tylko część wymagań; reszta to zachowanie strony w trakcie używania
Rozwiązanie
poprawki menu, formularza i komunikatów, każda z konkretnym punktem standardu WCAG 2.2
Efekt
0 błędów w teście automatycznym i 0 barier w ręcznym przejściu klawiaturą; Lighthouse dostępność 100 na 5 sprawdzanych stronach

Wyzwanie

Dostępność to możliwość korzystania ze strony bez myszy, z powiększonym tekstem, z czytnikiem ekranu albo przy słabszym wzroku. Od czerwca 2025 r. część firm w Unii Europejskiej ma taki obowiązek wprost (Europejski akt o dostępności), a niezależnie od przepisów to klienci, którzy inaczej odejdą (stan na 2026-11). Standard, według którego się to sprawdza, to WCAG 2.2 na poziomie AA.

Klient miał dwie wersje strony do porównania: starą i nową, przeprojektowaną z myślą o telefonach. Chciał wiedzieć, czy nowa jest dostępna i co trzeba poprawić.

Jak sprawdzaliśmy

  1. Test automatyczny (axe, ten sam silnik, którego używają popularne wtyczki i Lighthouse) na wszystkich 9 stronach, na telefonie i komputerze, także z otwartym menu, otwartym zdjęciem i formularzem z błędami.
  2. Lighthouse, kategoria dostępność.
  3. Przejście klawiaturą: tylko klawisz Tab, Enter, Esc i strzałki. Gdzie jest fokus, czy go widać, czy da się otworzyć i zamknąć menu oraz powiększone zdjęcie, czy formularz mówi, co jest źle.
  4. To, co słyszy czytnik ekranu: drzewo dostępności z przeglądarki (nazwy pól, przycisków, komunikaty).
  5. Powiększony tekst i odstępy, tryb wysokiego kontrastu w Windows.

Co się okazało

Stara strona: test automatyczny znalazł dwa rodzaje błędów na każdej stronie: zdjęcia-linki i przycisk menu bez żadnego opisu (czytnik mówi tylko „link”) oraz zablokowane powiększanie palcami. Do tego brak skrótu „przejdź do treści”, pozycje menu bez widocznego zaznaczenia przy obsłudze klawiaturą, menu na telefonie, którego nie da się zamknąć klawiszem Esc, i baner cookies zasłaniający link „Kontakt” w stopce. Kolor linków miał kontrast 2,1:1 przy wymaganym 4,5:1; test automatyczny tego nie policzył, bo tło strony było obrazkiem.

Strona po redesignie: test automatyczny: zero błędów, Lighthouse: 100. Mimo to ręczne przejście znalazło pięć barier:

  1. Po otwarciu menu na telefonie klawisz Tab przenosił fokus pod menu, na przyciski zasłonięte przez panel.
  2. Rozwijane podmenu na komputerze nie chowało się klawiszem Esc.
  3. Formularz pokazywał błędy tylko w dymku przeglądarki, jeden naraz, w języku przeglądarki i bez śladu w treści strony.
  4. Po wysłaniu formularza komunikat „Dziękujemy” pojawiał się na stronie, ale czytnik go nie odczytywał.
  5. Czytnik czytał „gwiazdka” w nazwie każdego pola i nigdzie nie było napisane, co gwiazdka znaczy.

Przy poprawkach wyszła szósta rzecz: linki w treści miały być podkreślone, ale wtyczka do budowania stron (Elementor) po cichu usuwała podkreślenie.

Co nie było oczywiste

  1. Zero błędów w teście automatycznym nie znaczy „dostępna”. Wszystkie pięć barier po redesignie przeszło przez axe i Lighthouse bez uwag, także w stanach z otwartym menu i formularzem z błędami.
  2. Test nie liczy kontrastu na tle z obrazka. Na starej stronie 152–195 elementów zostało oznaczonych „do sprawdzenia ręcznie”, a nie jako błąd, choć linki miały kontrast 2,1:1.
  3. Kolejność w kodzie decyduje o kolejności klawiatury. Menu było w kodzie przed przyciskiem, który je otwiera, więc po otwarciu klawisz Tab szedł dalej, pod panel.
  4. Komunikat na stronie to nie komunikat dla czytnika. Napis „Dziękujemy” był widoczny, ale czytnik odczytał go dopiero po przeniesieniu na niego fokusu, a to zadziałało dopiero po pełnym załadowaniu strony.
  5. Narzędzie do budowania stron może cicho wyłączyć poprawkę. Styl Elementora usuwał podkreślenie linków i wygrywał z naszym stylem niezależnie od tego, jak był zapisany.

Co zrobiliśmy

Menu na telefonie: po otwarciu fokus przechodzi do pierwszej pozycji, reszta strony jest wyłączona z nawigacji, Esc zamyka menu i wraca do przycisku.

  • Podmenu na komputerze chowa się klawiszem Esc.
  • Formularz: komunikat przy każdym błędnym polu, po polsku, z podpowiedzią, jak poprawić; lista błędów na górze z linkami do pól; czytnik słyszy, które pole jest błędne i dlaczego.
  • Potwierdzenie wysłania odczytywane przez czytnik.
  • Objaśnienie gwiazdki nad formularzem, bez „gwiazdki” w nazwach pól.
  • Podkreślenie linków w treści przywrócone.
  • Wcześniej, przy redesignie: kontrast linków 6,1:1 i ramek pól 4,6:1, widoczny fokus na każdym elemencie, skrót „przejdź do treści”, opisy zdjęć, możliwość powiększania, wyłączenie animacji dla osób, które tego chcą.

Efekt przed poprawkami i po nich

StaraPo redesigniePo poprawkach
Błędy w teście automatycznym (9 stron)2 rodzaje na każdej stronie00
Lighthouse, dostępność89–90100100
Bariery w przejściu klawiaturą550
Formularz z komunikatami błędówbrak formularzadymki przeglądarkikomunikaty przy polach i lista błędów

Wnioski dla właściciela strony

Test automatyczny warto robić zawsze, ale to połowa pracy. Menu, formularze i komunikaty trzeba sprawdzić ręcznie.

  • Najwięcej barier kryje się w elementach, które coś robią: menu, okna, formularze.
  • Dostępność łatwiej zaprojektować od razu niż poprawiać; w tym projekcie część wymagań spełniliśmy już przy redesignie.
  • Następny krok, którego tu nie było: odsłuch z prawdziwym czytnikiem ekranu i test z osobą, która z niego korzysta na co dzień.

Punktem wyjścia był redesign mobile-first tej samej strony, a dostępny formularz z tego tekstu dostał potem automatyczne przekazywanie zapytań do CRM. Sprawdzenie dostępności robimy przy projektowaniu stron i w ramach opieki nad stroną; przegląd zamówisz przez formularz.

Opis techniczny: problemy z kryteriami WCAG 2.2, poprawki i wyniki

Dla administratorów: pełny przebieg z dokładnymi liczbami, poleceniami i konfiguracją. Wersje: stan na listopad 2026.

W skrócie

ElementSzczegóły
ŚrodowiskoWordPress 7.1.4, Elementor 4.3.5, własny motyw (Tailwind CSS 4.3.3); stara wersja: motyw z generatora, NextGEN Gallery 4.5.3 z simplelightbox, Cookie Notice 3.1.17 (stan na 2026-11)
Narzędziaaxe-core 4.14.0 (reguły WCAG 2.0–2.2 A/AA), Lighthouse 12.8.2 (mobile), przejście klawiaturą (Tab/Shift+Tab), scenariusze menu i lightboxa, formularz, odstępy tekstu, tryb wymuszonych kolorów, drzewo dostępności
Objawstara: link-name, meta-viewport, brak main i H1, brak skip linku; po redesignie axe 0 / Lighthouse 100, ale fokus wychodzący z panelu menu, podmenu bez Esc, błędy formularza tylko natywne, status bez ogłoszenia
Rozwiązanieinert + przeniesienie fokusu w panelu menu, Esc dla podmenu, walidacja z aria-invalid/aria-describedby i podsumowaniem błędów, role="status" z fokusem po load, gwiazdka aria-hidden, reguła podkreślenia poza @layer
Efektaxe 0 na 9 stronach × 2 szerokości i w 3 stanach interaktywnych; Lighthouse 100 (5 stron × 2); przejście klawiaturą bez barier

Kontekst

Trzy wersje tej samej treści w laboratorium: stara (motyw z generatora), po redesignie mobile-first (osobne case study) i po poprawkach dostępności. Redesign przeszedł już bramkę jakości, która dała część wymagań WCAG (kontrast tekstu i kontrolek, :focus-visible, prefers-reduced-motion, cele dotyku ≥ 48 px), więc audyt „przed” na wersji po redesignie zaczynał od czystego wyniku narzędzi.

Diagnoza

1. axe-core na 9 stronach × 390 i 1280 px; osobno stany interaktywne: formularz po nieudanym wysłaniu, otwarte menu na telefonie, otwarty lightbox. Zapisane także wyniki incomplete (do ręcznej oceny).

2. Lighthouse 12.8.2, profil mobilny, 5 stron × 2 przebiegi.

3. Przejście klawiaturą (desktop 1280 px i telefon 390 px z klawiaturą): Tab od początku do końca strony; przy każdym zatrzymaniu: czy fokus jest widoczny, czy element jest w oknie i niczym niezasłonięty, czy fokus nie krąży w kółko. Scenariusze: skip link (czy widoczny po fokusie, dokąd prowadzi), menu (Enter, następny Tab, wyjście fokusu z panelu, Esc, powrót fokusu), lightbox (Enter, fokus w oknie, strzałki, Tab w oknie, Esc, powrót fokusu).

4. Dodatki: Shift+Tab od końca strony (2.4.11 pod przyklejonym nagłówkiem), podmenu desktopu z fokusem + Esc (1.4.13), style odstępów tekstu z kryterium 1.4.12 (line-height: 1.5, letter-spacing: 0.12em, word-spacing: 0.16em, akapity 2em) i wykrywanie uciętego tekstu w kontenerach overflow: hidden, formularz: pusty, z błędnym e-mailem i poprawny (aria-invalid, opis z aria-describedby, validationMessage, fokus, regiony role="status"/alert), drzewo dostępności formularza i strony z otwartym menu, podgląd w trybie wymuszonych kolorów.

Wyniki „przed”

Stara wersja:

KontrolaWynik
axe (9 stron × 2 szerokości)2 reguły na każdej stronie: link-name (1–12 węzłów: linki-obrazki bez alt, a.art-menu-btn bez tekstu) i meta-viewport (user-scalable=no)
axe incompletecolor-contrast 152 (telefon) i 195 (desktop) węzłów: „Element's background color could not be determined due to a background image”; bypass: „No valid skip link found”
Kontrast policzony ręcznielinki #5ebfd9 na białym 2,11:1
Lighthouse dostępność89–90
Drzewo dostępnościpunkty orientacyjne navigation, banner, contentinfo, brak main; strona główna bez H1 (tylko h3)
Klawiatura, desktopbrak skip linku (pierwszy Tab: „Strona główna”), 5 zatrzymań bez widocznego fokusu (pozycje menu)
Klawiatura, telefonpierwszy Tab na a.art-menu-btn (href="#", bez tekstu); Esc nie zamyka menu, fokus nie wraca
Lightbox (simplelightbox)fokus nie przechodzi do okna (zostaje na miniaturze), Tab chodzi po stronie pod spodem, w oknie image-alt
Shift+Tablink „Kontakt” w stopce zasłonięty banerem cookies (fixed)
Odstępy tekstu 1.4.12treść 585 px (strona główna) i 936 px (kontakt) w oknie 390 px, ucięta przez overflow: hidden
Formularzbrak

Po redesignie (przed poprawkami dostępności):

KontrolaWynik
axe (9 stron × 2 szerokości i 3 stany)0 naruszeń; incomplete: 5 węzłów kontrastu
Lighthouse dostępność100 na 5 stronach
Fokuswidoczny na każdym zatrzymaniu (desktop 19–29, telefon 12–22 zatrzymań na stronę), bez cykli
Skip linkwidoczny po fokusie, następny Tab w main
Lightbox (<dialog> + showModal())fokus w oknie, strzałki działają, Tab zostaje w oknie, Esc zamyka, fokus wraca na miniaturę
Shift+Tab0 elementów zasłoniętych przez przyklejony nagłówek (scroll-padding-top: 72px)
Menu na telefoniepo Enter następny Tab: „Zapytaj o termin” (poza menu); fokus trafia na link telefonu zasłonięty panelem
Podmenu na desktopiewidoczne przy fokusie, Esc go nie chowa
Formularz pustybrak aria-invalid i opisów; validationMessage: „Please fill out this field.” (język przeglądarki); fokus na pierwszym polu
Po wysłaniu/kontakt/?wyslano=1#formularz, fokus na body, brak regionu statusu
Nazwy póltextbox "Imię i nazwisko *", checkbox "Zgadzam się … *", brak objaśnienia gwiazdki

Problemy i poprawki (z kryteriami WCAG 2.2)

#ProblemKryteriumWersjaPoprawka
1Linki-obrazki i przycisk menu bez nazwy dostępnej1.1.1, 2.4.4, 4.1.2stararedesign: alt z biblioteki mediów w każdym zdjęciu, przycisk <button> z tekstem „Menu”
2user-scalable=no blokuje powiększanie1.4.4stararedesign: width=device-width, initial-scale=1
3Brak linku do treści, brak main, brak H12.4.1, 1.3.1stararedesign: skip link do #content, <main>, jedna H1 na stronę
4Kontrast linków 2,11:11.4.3stararedesign (bramka jakości): #146b80, 6,1:1
5Fokus niewidoczny na pozycjach menu2.4.7stararedesign: :focus-visible { outline: 3px solid #0c3640; outline-offset: 2px }
6Treść ucinana przy odstępach tekstu z 1.4.121.4.12stararedesign: układ bez stałych szerokości i overflow: hidden
7Baner cookies zasłania fokus2.4.11stararedesign: bez banera (brak cookies)
8Fokus wychodzi z otwartego panelu menu pod spód, strona pod panelem w drzewie dostępności2.4.3, 2.4.11, 1.3.2redesignfokus na pierwszej pozycji, inert na tle, Esc + powrót fokusu
9Podmenu pokazane fokusem nie chowa się po Esc1.4.13redesignklasa is-dismissed do opuszczenia pozycji
10Błędy formularza tylko w dymku przeglądarki3.3.1, 3.3.3redesignkomunikat przy polu, aria-invalid, aria-describedby, podsumowanie z linkami i fokusem
11Komunikat po wysłaniu nieogłaszany4.1.3redesignrole="status", fokus na komunikacie po load
12„” w nazwach pól, brak objaśnienia | 3.3.2 | redesign | gwiazdka ukryta przed czytnikiem (aria-hidden="true"), „Pola oznaczone gwiazdką () są wymagane.”
13Podkreślenie linków w treści usuwane przez CSS Elementora1.4.1redesignreguła poza @layer o wyższej specyficzności

Kryteria sprawdzone i spełnione już po redesignie: 1.4.10 (reflow: 0 px przewijania w poziomie od 320 do 1920 px), 1.4.11 (obramowanie pól 4,6:1, pierścień fokusu 12,6:1), 2.5.8 (wszystkie cele ≥ 44 px), 1.3.5 (autocomplete="name", email, tel), 3.1.1 (lang="pl-PL"), 3.2.6 (kontakt w stopce każdej strony), 2.5.7 (przewijanie zdjęć gestem ma przyciski), ruch: prefers-reduced-motion: reduce wyłącza animacje i płynne przewijanie.

Przyczyna

Narzędzia automatyczne sprawdzają stan dokumentu w chwili uruchomienia: atrybuty, nazwy, kontrast policzalny z CSS. Bariery po redesignie dotyczyły zachowania: kolejności fokusu po interakcji, tego, co dzieje się po naciśnięciu Esc, co trafia do drzewa dostępności po wysłaniu formularza. axe uruchomiony w stanie „menu otwarte” widzi poprawne aria-expanded i poprawne linki, ale nie naciska Tab. Stara wersja miała problemy innego rodzaju: generator motywu nie dawał nazw elementom, a treść wpisywana w edytorze klasycznym nie miała tekstów alternatywnych.

Co nie było oczywiste

  1. axe 0 i Lighthouse 100 przy pięciu barierach. Po redesignie axe nie zgłosił nic na 9 stronach w dwóch szerokościach, także w stanach: formularz z błędami, otwarte menu, otwarty lightbox. Wszystkie bariery (fokus pod panelem, Esc w podmenu, błędy formularza, brak ogłoszenia statusu, gwiazdka w nazwach) wyszły w przejściu klawiaturą i w drzewie dostępności.
  2. Kontrast na tle z obrazkiem trafia do „incomplete”, nie do błędów. Stara strona ma tło z teksturą (page.png), więc axe oznaczył 152–195 węzłów jako „Element's background color could not be determined due to a background image” i Lighthouse dał 89–90 bez kary za kontrast; policzony ręcznie kontrast linków to 2,11:1.
  3. Kolejność DOM po otwarciu panelu. <nav id="menu"> stoi w kodzie przed <button aria-controls="menu">, więc po otwarciu kolejny Tab idzie w przód, do main zasłoniętego panelem (position: fixed; inset: 60px 0 0). Samo aria-expanded tego nie naprawia; potrzebne było przeniesienie fokusu i inert na tle. Po poprawce strona za panelem znika też z drzewa dostępności, a fokus po ostatnim elemencie paska przechodzi do interfejsu przeglądarki.
  4. Fokus na komunikacie po przeładowaniu znika przez kotwicę. Skrypt z defer ustawiał fokus na role="status" od razu, ale przewinięcie do #formularz po załadowaniu kasowało go (document.activeElement = body). Fokus ustawiony w load + requestAnimationFrame zostaje: activeElement = div.form-status. Komunikat obecny w HTML od początku nie jest ogłaszany przez region role="status" (ogłaszane są zmiany), dlatego fokus jest konieczny.
  5. Dymki walidacji przeglądarki mówią językiem przeglądarki, nie strony. W testowej przeglądarce ustawionej na angielski formularz polskiej strony mówił „Please fill out this field.” i „Please include an '@' in the email address.”, po jednym błędzie naraz, bez śladu w DOM. Własne komunikaty (novalidate + te same teksty w PHP i JS) są po polsku i zostają przy polach.
  6. CSS Elementora wyłącza podkreślenia i wygrywa z motywem. Elementor ma .elementor a{box-shadow:none;text-decoration:none} bez warstw kaskady, a style motywu Tailwind są w @layer components. Reguła spoza warstwy wygrywa z każdą regułą w warstwie, niezależnie od specyficzności, więc text-decoration: underline motywu nie działał (getComputedStyle → none). Poprawka: reguła poza @layer z selektorem .elementor .text-link (wyższa specyficzność niż .elementor a).
  7. Wbudowany <dialog> z showModal() przechodzi bez poprawek. Fokus w oknie, Tab zostaje w środku, Esc zamyka, fokus wraca do miniatury (opener.focus() w zdarzeniu close). Stary lightbox z wtyczki galerii (simplelightbox) zostawiał fokus na stronie pod spodem.

Rozwiązanie

Menu na telefonie (assets/js/app.js):

const tlo = () => [...doc.querySelectorAll('main, .footer, .skip-link, .to-top')];
const setOpen = (open, oddajFokus) => {
  toggle.setAttribute('aria-expanded', String(open));
  nav.classList.toggle('is-open', open);
  tlo().forEach((el) => { el.inert = open; });
  if (open) nav.querySelector('a')?.focus();
  else if (oddajFokus) toggle.focus();
};
doc.addEventListener('keydown', (e) => { if (e.key === 'Escape' && toggle.getAttribute('aria-expanded') === 'true') setOpen(false, true); });

Podmenu, Esc (1.4.13): li.classList.add('is-dismissed') po Esc, usunięcie przy focusout poza pozycję albo mouseleave; CSS: .nav__menu li.is-dismissed > .sub-menu { visibility: hidden; }.

Formularz (inc/form.php, ten sam tekst błędu w PHP i JS):

<p class="form-hint">Pola oznaczone gwiazdką (*) są wymagane.</p>
<div class="form-status" role="status" tabindex="-1">…</div>
<div class="error-summary" tabindex="-1" hidden>…lista linków do pól…</div>
<form novalidate …>
  <label for="f-email">E-mail <span aria-hidden="true">*</span></label>
  <input type="email" id="f-email" name="email" required autocomplete="email"
         aria-describedby="f-email-blad" aria-invalid="true">
  <p class="field__error" id="f-email-blad">Wpisz adres e-mail w formacie nazwa@domena.pl.</p>

Przy wysyłce z błędami: komunikat przy każdym polu, podsumowanie „Formularz zawiera błędy (3)” z linkami do pól, fokus na podsumowaniu; komunikat znika, gdy pole jest poprawne (zdarzenie input, bez komunikatu przy każdym znaku). Bez JS: te same komunikaty z serwera (transient 10 min), wartości wracają do pól.

Podkreślenie linków poza warstwą (src/app.css, na końcu, poza @layer):

.elementor .text-link,
.elementor .error-summary a,
.elementor .elementor-widget-text-editor p a:not(.contact-link) { text-decoration: underline; text-underline-offset: 3px; }

Wyniki „po”

KontrolaStaraPo redesigniePo poprawkach
axe, 9 stron × 2 szerokości2 reguły na 9/9 stronach00
axe, stany: formularz z błędami / menu / lightboxnie dotyczy / 2 reguły / 3 reguły0 / 0 / 00 / 0 / 0
Lighthouse dostępność (5 stron)89–90100100
Zatrzymania bez widocznego fokusu5 na stronę (desktop)00
Skip linkbrakjestjest
Menu: następny Tab po otwarciuw menu, Esc nie zamykapoza menu, pod panelem„Realizacje” (w menu), tło inert, Esc + powrót fokusu
Podmenu + Escnie dotyczynie chowachowa
Pusty formularzbrak formularzadymek przeglądarki, 0 pól z aria-invalidpodsumowanie z fokusem, 4 pola z aria-invalid i opisem
Komunikat po wysłaniunie dotyczyfokus na bodyfokus na role="status"
Shift+Tab, fokus zasłonięty4–5 (baner)00
Odstępy tekstu 1.4.12treść ucięta (585–936 px w 390 px)bez ucięciabez ucięcia
Wymuszone kolorynie sprawdzanonie sprawdzanofokus i ramki widoczne (zrzut)
Bramka anty-slop (detektor impeccable)1–10 znalezisk na stronę00

Rezultaty

EtykietaWartość
Naruszenia axe na 9 stronach2 reguły na każdej stronie (stara), 0 po poprawkach
Lighthouse, dostępność89–90 (stara), 100 po poprawkach (5 stron × 2 przebiegi)
Bariery znalezione ręcznie przy axe = 05 po redesignie, 0 po poprawkach
Pola z komunikatem błędu powiązanym przez aria-describedby0 z 4 przed, 4 z 4 po
Problemy przypisane do kryteriów WCAG 2.213 (7 w starej wersji, 6 po redesignie), wszystkie poprawione

Wnioski

  • Raport z narzędzia to punkt wyjścia. W tym projekcie wszystkie bariery w nowej wersji przeszły przez axe i Lighthouse.
  • Najtańsza kontrola z największym zwrotem: jedno przejście każdej strony samą klawiaturą i sprawdzenie formularza z błędami.
  • Kreatory stron i ich CSS potrafią po cichu cofnąć poprawki; trzeba sprawdzać wynik w przeglądarce, nie w kodzie motywu.
  • Przed deklaracją zgodności warto dodać odsłuch z NVDA lub VoiceOver i test z użytkownikiem czytnika; tu tego nie robiliśmy.

Gdy strona ma być dostępna

  • Bezpłatny przegląd strony

    Gdy masz stronę i nie wiesz, w jakim jest stanie: czy jest bezpieczna, aktualna i czy pomaga zdobywać klientów.

    bezpłatnie

    • certyfikat SSL i ostrzeżenia przeglądarki
    • wersje WordPressa, PHP, wtyczek i motywu
    • kopie zapasowe: czy są i gdzie
    • wygląd i szybkość na telefonie
    • podstawy widoczności w Google

    Co dostajesz

    Krótki raport e-mailem: co działa, co poprawić najpierw i od czego zacząć.

  • Strona firmowa

    Dla firm z kilkoma usługami i realizacjami do pokazania, których klienci przed telefonem porównują oferty w Google.

    Wycena indywidualna

    • osobna podstrona dla każdej usługi, pod frazy wpisywane przez Twoich klientów
    • realizacje ze zdjęciami i krótkim opisem
    • formularz zapytania z wyborem tematu
    • projekt strony głównej do akceptacji przed budową całości
    • podstawy SEO, certyfikat SSL i wersja na telefon

    Co dostajesz

    Bezpłatną wycenę w 24 h: listę podstron, funkcje, termin i cenę netto. Cena zależy od zakresu, dlatego wyceniamy indywidualnie.

Zadzwoń i powiedz, czego potrzebuje Twoja strona

Rozmawiamy o nowej stronie, hostingu albo problemie z obecną stroną. Wycenę nowej strony dostajesz bezpłatnie w 24 h.

Telefon (polski) +48 501 250 220

Dostępni: poniedziałek–piątek, 9:00–17:00