Culorile sunt tokeni, iar contrastul e un număr calculat
Paleta stă într-un bloc de 14 variabile, iar textul secundar folosește un singur token: `--muted: #666b65`. Raporturile, recalculate cu formula de luminanță relativă din WCAG pe cele șapte fundaluri ale sitului: 5,45:1 pe alb, 5,15, 5,11, 5,03, 5,02, 4,79 și 4,72. Textul principal, `--ink: #181a19`, obține 17,49:1 pe alb; accentul verde `#355c46`, 7,58:1. Când o culoare nu ajunge la prag, se schimbă tokenul, nu se argumentează în ședință.
Componentele au tipar de tastatură, nu doar aspect
Grupul de tabsuri de pe pagina de start folosește indexul de tabulare mobil: doar tabul activ e accesibil cu Tab, celelalte sunt scoase din ordine, iar săgețile stânga/dreapta, Home și End mută focusul, cu comportamentul implicit al tastei anulat. E modelul din practicile recomandate pentru componente accesibile, implementat, nu citat. În componentele de bază ale sitului sunt 21 de etichete accesibile, 7 stări apăsat/neapăsat, 3 legături între titlu și regiune, 2 stări de selecție, 2 regiuni care anunță schimbări și 2 legături între comandă și panoul pe care îl controlează.
Mișcarea are buton de oprire și se stinge la preferința sistemului
Pe pagina de start sunt 38 de elemente animate la infinit, pornite automat, care durează peste cinci secunde — exact situația reglementată de criteriul „Pauză, oprire, ascundere”. Toate 38 sunt acoperite de butoane de pauză: la apăsare, animațiile trec pe stare oprită și starea butonului se schimbă. Separat, la `prefers-reduced-motion: reduce` o regulă globală anulează orice animație și tranziție, oprește derularea lină, elimină deplasarea la trecerea cu mouse-ul și ascunde butonul de pauză. În foaia principală sunt șapte astfel de blocuri, plus unul în foaia de bază.
Indicator de focus vizibil, doar unde trebuie
Contur de 2 px solid, în verdele de accent, cu 5 px distanță, aplicat prin `:focus-visible` — deci apare la navigarea cu tastatura și nu la clic cu mouse-ul. Verificat în browser, element cu element, pe antet și pe primele comenzi din conținut: patru elemente diferite, același contur. Nicăieri în foaia de stil nu există un contur eliminat fără înlocuitor.
Formulare care își anunță stările
În formularul de contact al sitului, etichetele sunt implicite pe câmpuri, eroarea e marcată ca alertă și confirmarea ca stare — deci cititoarele de ecran le anunță fără ca utilizatorul să caute. Capcana pentru boți e ascunsă corect: părinte fără afișare, marcat ca ascuns pentru tehnologii asistive și scos din ordinea de tabulare. Auditul propriu confirmă că regulile de etichetare, de nume pentru selectoare și de completare automată trec toate.
Verificarea se face cu unealtă, pe pagini reale
Rulăm axe-core 4.10.2 în pagina live, nu într-un mediu de test, pe un eșantion de zece pagini care acoperă tipare diferite: pagina de start, catalogul, o pagină de produs, indexul de servicii, o pagină de serviciu, matricea de soluții, o combinație din matrice, contactul, tarifele, un articol și un document juridic. Rezultatul brut se scrie pe pagină, cu numărul de noduri, nu rezumat în „conform”.
Ce a picat se publică, nu se rotunjește
Din același audit: la 320 px lățime, comanda din antet și butonul de meniu depășesc ecranul cu 22 px și pagina derulează orizontal — aritmetica e 362 px de conținut într-un container de 280 px. În documentele juridice, linkurile din text nu se disting de textul din jur decât prin culoare, iar raportul dintre accent și textul de corp e 1,01:1, deci sublinierea e obligatorie. Ambele sunt deschise, cu remediere scrisă. Le publicăm pentru că un cumpărător care cere accesibilitate merită să vadă cum arată o listă de defecte reală.
Fără temă întunecată — spus, nu simulat
Site-ul nu are temă întunecată. Blocul de tokeni e declarat pentru trei selectoare care primesc valori identice, iar în cod nu există nicio regulă pentru preferința de schemă a sistemului. Verificat în browser cu schema întunecată emulată: pagina rămâne albă. Consecința utilă: toate raporturile de contrast măsurate sunt valabile în ambele scheme. Consecința neplăcută: comutatorul de temă e cod mort din punctul de vedere al culorii. O temă întunecată reală înseamnă re-măsurarea integrală a contrastului, nu copierea valorilor.
Tipografie cu reguli, nu cu preferințe
O singură familie pentru titluri și text, cu spațiere între litere ajustată pe nivel — mai strânsă la titlurile mari, `-0,055em` la nivelurile unu și doi, `-0,035em` la nivelul trei — și greutate 500 pe titluri. Paragrafele folosesc echilibrarea rândurilor, ca să nu rămână un cuvânt singur pe ultimul rând. Containerul are lățime maximă de 1240 px cu margini de 48 px, iar butoanele au aceeași înălțime de rând peste tot. Sunt reguli scrise în foaia de stil, deci se aplică și după ce plecăm.