2.5.8Poziom AA

Rozmiar celu — minimum

Target Size (Minimum)

Cel wskaźnika mieści pełny kwadrat 24 × 24 CSS px albo spełnia jeden z pięciu wyjątków; mierzymy czynny obszar, a nie ikonę.

Komu pomaga
Ograniczenia ruchoweSłabowidzenie
Zastosowanie
WWWAplikacje mobilneAplikacje desktopoweDokumenty cyfroweInne urządzenia

Warunki i wyjątki opisano w artykule.

Wersja
WCAG 2.2, wprowadzone w 2.2
Zasada / wytyczna
Funkcjonalność / 2.5
Stan researchu
Draft AI. Bez przeglądu człowieka.
Redakcja artykułu
· wersja robocza
Na tej stronie

Co oznacza to kryterium

Mały cel tuż przy innym zwiększa ryzyko uruchomienia niewłaściwej akcji. Można powiększyć klikalny obszar, pozostawiając małą ikonę, albo spełnić wyjątek odstępów. Kryterium AA wymaga pełnego kwadratu 24 × 24 CSS px lub jednego z pięciu wyjątków. Geometrycznie poprawny mały cel nadal może być trudny w użyciu.

Potrzeba Potrzeba i bariera
motor — Ograniczenia ruchowe Mniejsza precyzja dłoni, drżenie lub alternatywny wskaźnik zwiększają ryzyko trafienia w sąsiada.
low-vision — Słabowidzenie Większy czynny obszar ułatwia wskazanie celu części osób słabowidzących; samo powiększenie ikony bez obszaru nie rozwiązuje tego problemu.

Większe cele i odstępy pomagają także osobom obsługującym interfejs jedną ręką lub w poruszającym się pojeździe. Nie przypisujemy automatycznie blindness, hearing, color-vision ani cognitive. Wymagania klawiatury, nazw i informacji dla czytnika pozostają odrębne.

Przykłady błędów i poprawek

Kontekst wszystkich trzech wariantów: punkt P-104, „Pokaż adres” ujawnia Ogrodową 8, „Pokaż godziny” ujawnia 10:00–18:00. Wspólne dane, ikony i działania; istotna zmiana dotyczy geometrii. Nie ma równoważnego celu dla tych działań, zdania z linkami, domyślnej kontrolki UA ani koniecznego gęstego układu. Cykl good → bad → control i reset są narzędziami demonstracji, a nie alternatywną drogą uzyskania adresu.

Wariant iOS logical / WWW CSS px Oczekiwany wynik lokalnej oceny
bad Dwa kwadraty 20 × 20, gap 0 Za małe; koła 24 mają środki oddalone o 20 i przecinają się. Koło przecina też drugi rzeczywisty cel: odległość do prostokąta 10 < 12.
good iOS 48 × 48, WWW 24 × 24, gap 12 Pełny osiowy kwadrat co najmniej 24 mieści się w każdym rzeczywistym celu. Ikona zostaje mała.
control Dwa kwadraty 20 × 20, gap 4 Nie spełniają drogi rozmiaru, ale spełniają spacing: środki 24, koła styczne; do drugiego celu odległość 14 > 12. Nie znaczy to, że taki cel jest wygodny.

W webowym przykładzie C42 linki „1” i „2” mają ramy 7,234375 × 16 CSS px i są wyśrodkowane w kontenerach 24 × 24. Środki kół są oddalone o 24, a klik pustej części kontenera nie uruchamia linku. Ten rząd nawigacji nie korzysta z wyjątku linku w zdaniu.

Good na iOS: małe ikony adresu i godzin w celach 48 × 48.

Good, iOS Simulator, 2026-10-04: czynne kwadraty 48 × 48 jednostek logicznych otaczają małe ikony. Obraz pokazuje układ; granice potwierdzono rendererem, siatką hit-test i zwykłymi tap.

Bad na iOS: dwa małe cele 20 × 20 bez odstępu.

Bad ma dwa stykające się kwadraty 20 × 20. Koła odstępów przecinają się; geometria daje FAIL, mimo że test poprawnie odtworzył tę barierę.

Control na iOS: cele 20 × 20 z odstępem 4.

Control pozostawia małe cele i dodaje odstęp 4. Koła o średnicy 24 są styczne, więc działa wyjątek odstępów; kadr nie jest oceną wygody użycia.

Webowy przykład C42: linki 1 i 2 pośrodku kontenerów 24 × 24.

C42, 2026-10-04: linki mają ramy 7,234375 × 16 CSS px i środki oddalone o 24. Kontenery rozdzielają cele, ale ich puste części nie stają się linkami.

Po kliknięciu linku 2 widoczna wybrana strona 2.

Klik rzeczywistego linku 2 wybrał stronę 2. Wynik pochodzi ze zwykłego wejścia przeglądarki; nie rozszerza czynnego obszaru na kontener.

Klik pustej części kontenera pozostawia wybór strony bez zmiany.

Pusta część kontenera nie uruchomiła linku. Otrzymane wejście i brak zmiany zapisano w przebiegu; pojedynczy nieruchomy obraz sam nie dowodzi tego braku reakcji.

Inne sytuacje do oceny

Sytuacja Błąd / poprawka / granica Wykonanie
Mały cel obok dużej karty Koło małego celu może przeciąć dużą kartę mimo odległości środków większej niż 24. Oddalić mały cel lub powiększyć jego czynny obszar; mierzyć rzeczywistą odciętą część karty. Scenariusz edukacyjny NOT-RUN.
Rząd szerokich przycisków wysokości 16 Niewielka wysokość sama nie dowodzi błędu. Sprawdzić koła i rzeczywiste cele wszystkich rzędów; dodać pionowy odstęp, gdy dolny rząd je przecina. Scenariusz edukacyjny NOT-RUN.
Ikona 16 w przycisku 48 Może być poprawna: ikona nie jest całym celem. Nie zgłaszać automatycznie FAIL ze screenshotu. Wykonana geometria iOS good; nie jest testem wszystkich standardowych widgetów.
Koło 24 / nakładka Kwadrat 24 nie mieści się w kole. Ocenić spacing, a pod nową nakładką także utratę regionu innych działań. Geometria koła jako obliczenie; nakładka NOT-RUN.

Kiedy obowiązuje i gdzie są wyjątki

Rozmiar: w rzeczywistym obszarze przyjmującym akcję musi dać się umieścić pełny kwadrat 24 × 24 CSS px wyrównany do osi. Bounding box 24 × 24 nie wystarcza dla dowolnego kształtu: koło o średnicy 24 nie mieści takiego kwadratu. Dla idealnego koła sama droga rozmiaru wymaga średnicy co najmniej 24√2, czyli około 33,94; jest to własne obliczenie geometrii. Koło 24 nadal może skorzystać z wyjątku odstępów.

Cel to region przyjmujący działanie wskaźnika, np. dotyku, myszy lub pióra. Minimum bounding box jest najmniejszym osiowym prostokątem otaczającym kształt; wielowierszowy link w zdaniu rozpatruje się zgodnie z definicją dla pojedynczej linii. Przy nakładaniu celów różnych działań odejmuje się część przejmowaną przez drugi cel; nakładanie prowadzące do tego samego działania lub strony ma odrębny wyjątek w definicji target. Ikona, obraz PNG i ramka AX nie są tym regionem.

Wyjątek Dokładny warunek i granica
Odstępy — spacing Dla KAŻDEGO zbyt małego celu umieścić koło średnicy 24 w środku jego bounding box. Nie może przecinać rzeczywistego innego celu ani koła innego zbyt małego celu. Styczność jest dozwolona. Dystans środków 24 wystarcza dla dwóch kół, lecz sam nie rozstrzyga kolizji z dużym sąsiadem.
Równoważny cel — equivalent Ta sama funkcja jest osiągalna inną kontrolką na tej samej stronie, która spełnia kryterium. W WCAG2ICT: ten sam dokument lub program. Sprawdzić równoważność wyniku, nie tylko podobny napis.
W tekście — inline Cel jest w zdaniu albo rozmiar ogranicza wysokość linii otaczającego tekstu nietargetowego. Dla pionowego pisma wysokość linii interpretuje się prostopadle do przepływu. Sam CSS display:inline w nawigacji nie dowodzi wyjątku.
Kontrola UA Wielkość określa UA i autor jej nie zmienia; poza WWW także inne oprogramowanie platformy. Przykładem może być domyślny kalendarz lub scrollbar. Standardowa klasa widgetu po autorskim zmniejszeniu nie wystarcza.
Niezbędna prezentacja — essential Konkretna forma jest konieczna do przekazania informacji lub ściśle wymagana prawem. Zachowanie położenia punktów mapy może spełniać ten warunek; estetyka gęstego paska przycisków nie jest uzasadnieniem. Jeśli to możliwe, dodać alternatywną listę.

Suwak z wartościami zależnymi od położenia, gradientowy wybór koloru i obszar ustawiania kursora traktuje się jako jeden cel, a nie setki małych celów. Cele zasłonięte pomija się tylko na czas zasłonięcia; przyciski nowego menu lub overlay nadal wymagają oceny. Zoom WWW nie zmienia rozmiaru CSS i nie naprawia błędu. Progu AA nie zastępujemy 44 z AAA 2.5.5 ani wytycznymi Apple/Material; większe cele są użyteczną praktyką, w przykładzie mobilnym wybrano 48 jako praktykę projektową.

Understanding 2.5.8 wymienia C42 jako technikę wystarczającą dla CSS i wejścia wskaźnikiem. Mały link wyśrodkowany w kontenerze minimum 24 × 24 może spełniać spacing; kontener sam przez to nie staje się klikalny. Powiązana C44 objaśnia cele 44 × 44 dla rozszerzonego 2.5.5: jest mocniejszą praktyką, nie progiem AA tej karty. Techniki są informacyjne i nie są obowiązkowym sposobem implementacji.

W sprawdzonym Understanding nie ma osobnej techniki Failure przypisanej do 2.5.8. Nasz bad jest własnym odtworzeniem naruszenia, nie nazwanym błędem W3C ani stwierdzeniem częstości. Katalog W3C ACT 2026-10-04 podaje brak reguł dla tego kryterium. Checker demonstracji nie jest regułą ACT, zaślepionym walidatorem ani testem dowolnej aplikacji.

Platformy

Każdy wiersz zweryfikowano merytorycznie przez AI 2026-10-04; przegląd człowieka NOT-RUN. „Dotyczy warunkowo” odnosi się do obecności celów obsługiwanych wskaźnikiem, nie do posiadania testu. WCAG2ICT jest wskazówką interpretacyjną, nie normą ustanawiającą samodzielne wymagania. EN 301 549 nie jest podstawą tej karty i nie mapujemy jej klauzul.

ID / środowisko Podstawa / klauzula Stan, warunek i adaptacja Uzasadnienie / wykonanie
web — WWW WCAG 2.2 / 2.5.8 Dotyczy warunkowo: cele wskaźnika. Bez adaptacji; także przeglądarka telefonu. Mierzyć CSS px i rzeczywisty hit region. Własny przykład webowy wykonany w przeglądarce Codex/macOS.
mobile — Aplikacje mobilne WCAG2ICT 2.2, Group Note 2025-12-11 / 2.5.8 i CSS pixel Dotyczy warunkowo: własne cele dotyku, myszy lub pióra. Adaptacja: jednostki niezależne od gęstości przybliżające CSS reference pixel, np. iOS pt / Android dp. Równoważne działanie w tym samym programie; domyślna wielkość UA lub platformy niezmieniona przez autora. Ta sama potrzeba precyzji. Flutter logical units na iOS odpowiadają tu odczytowi 402 × 874 pt; raw PNG ma 1206 × 2622 piksele. Wykonano tylko iOS Simulator.
desktop — Aplikacje desktopowe Ta sama WCAG2ICT / 2.5.8 i CSS pixel Dotyczy warunkowo: cele wskaźnika. Adaptacja pt/epx lub odpowiednika platformowego; równoważność w tym samym programie. Obsługa myszą nie wyłącza kryterium. Natywny desktop NOT-RUN; WWW na macOS nie jest takim testem.
document — Dokumenty cyfrowe poza WWW Ta sama WCAG2ICT / 2.5.8, uwagi 3–4 Dotyczy warunkowo: linki i kontrolki przyjmujące wskaźnik. Równoważny cel w tym samym dokumencie; jednostka przybliżająca CSS reference pixel. Przy braku spójnego bazowego zoomu oceniać powiększenie zgodne z zamierzonym użyciem dokumentu i zapisać je. Dokument statyczny bez celów nie uruchamia badanego warunku, lecz nie wyłącza całej kategorii. Odbiornik PDF/dokumentu NOT-RUN.
other — Oprogramowanie kiosku dotykowego Ta sama WCAG2ICT / 2.5.8, CSS pixel, closed functionality Dotyczy warunkowo: programowe cele wskaźnika. Jednostka platformowa, a przy jej braku przybliżenie reference pixel względem znanego rozmiaru/gęstości i odległości użycia. Bez tych danych pomiar może być nieustalony; nie zastępować ich liczbą pikseli obrazu. Pilot nie ocenia sprzętu ani wszystkich innych urządzeń. Kiosk NOT-RUN.

W hybrydzie część WWW i natywną ocenia się osobno. Telewizor obsługiwany wyłącznie kierunkowym fokusem może nie mieć badanych celów wskaźnika; nie przenosimy tego wyłączenia na telewizor z myszą.

Rozwiązania w technologiach

Przegląd oficjalnej dokumentacji API: AI 2026-10-04, osobno od wykonania. Wykonano demonstrację Fluttera na iOS oraz przykład webowy. Fragmenty poniżej są edukacyjne; nie deklarują testów innych frameworków. Wybrano 48 jako wygodną praktykę mobilną, a nie obowiązek AA.

Flutter / Dart

import 'package:flutter/cupertino.dart';
Widget addressButton(VoidCallback showAddress) => CupertinoButton(
  minimumSize: const Size(48, 48),
  padding: const EdgeInsets.all(12),
  onPressed: showAddress,
  child: const Icon(CupertinoIcons.location, size: 16),
);

Standardowy przycisk utrzymuje obsługę działania i większy obszar. Ograniczenia rodzica, klipy, nakładki i automatyczne rozszerzenie hit region wymagają sprawdzenia runtime. W demonstracji użyto celowo prostokątnego GestureDetector(behavior: HitTestBehavior.opaque) wewnątrz Listener, bez automatycznego minimum kontrolki: pozwala to rozdzielić drogi rozmiaru i spacing. RendererBinding.hitTestInView tylko odczytuje prawdziwą ścieżkę, nie wysyła zdarzeń. Fragment powyżej nie został osobno skompilowany; działająca demonstracja została przeanalizowana, zbudowana i wykonana jako Flutter 3.44.9 / Dart 3.12.2.

iOS / SwiftUI

import SwiftUI
struct AddressButton: View {
    let showAddress: () -> Void
    var body: some View {
        Button(action: showAddress) {
            Image(systemName: "location")
                .frame(minWidth: 48, minHeight: 48)
                .contentShape(Rectangle())
        }
        .buttonStyle(.plain)
        .accessibilityLabel("Pokaż adres")
    }
}

Ramkę i contentShape umieszczono w label, aby zamierzony prostokąt należał do interaktywnej treści. Sam .frame poza buttonem lub zaokrąglony obraz nie dowodzi hit region. Sprawdzić normalne tapnięcia w rogach i klipy/nakładki. Oficjalna dokumentacja Button/frame/contentShape została przejrzana; kompilacja i runtime fragmentu NOT-RUN. Build Fluttera na iOS nie potwierdza SwiftUI.

Android / Jetpack Compose

import androidx.compose.foundation.layout.sizeIn
import androidx.compose.material3.Button
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp

@Composable
fun AddressButton(showAddress: () -> Unit) {
    Button(onClick = showAddress,
        modifier = Modifier.sizeIn(minWidth = 48.dp, minHeight = 48.dp)) {
        Text("Pokaż adres")
    }
}

Compose może rozszerzyć dotyk poza mały layout. Zapewnić miejsce także w układzie, by rozszerzenia różnych celów się nie nakładały; nie oceniać wyłącznie .size małej ikony. 48 dp wynika z praktyki platformowej, nie z progu WCAG AA. Dokumentacja REVIEWED; kompilacja, Android i runtime NOT-RUN.

React Native

import React from 'react';
import { Pressable, Text } from 'react-native';
export function AddressButton({ showAddress }: { showAddress: () => void }) {
  return (
    <Pressable
      accessibilityRole="button"
      accessibilityLabel="Pokaż adres"
      onPress={showAddress}
      style={{
        minWidth: 48,
        minHeight: 48,
        padding: 12,
        alignItems: 'center',
        justifyContent: 'center',
      }}
    >
      <Text>Pokaż adres</Text>
    </Pressable>
  );
}

hitSlop może powiększyć HitRect, lecz nie wychodzi poza rodzica, a przy nakładaniu rodzeństwa decyduje z-order. pressRetentionOffset dotyczy podtrzymania rozpoczętego nacisku, nie rozmiaru obszaru startowego. Minimalny layout zwykle upraszcza kontrolę sąsiadów. Dokumentacja REVIEWED; typecheck, kompilacja i runtime NOT-RUN.

HTML / CSS

<button class="target" type="button" aria-label="Pokaż adres">⌖</button>
<style>
  .target {
    min-width: 24px;
    min-height: 24px;
    padding: 4px;
    box-sizing: border-box;
    border-radius: 0;
  }
</style>

Tło/padding samego buttona jest jego obszarem, o ile odbiornik, klipy i warstwy go nie ograniczają. Dla C42 wyśrodkować mały link w display:flex kontenerze z minimum 24, ale nie zakładać aktywności całego kontenera. Działający WWW PASS w zapisanym zakresie; nie wykonano przeglądarek mobilnych, zoomu ani touch hardware.

Jak sprawdzić

  1. Ustalić wszystkie cele wskaźnika, ich akcje, kształty, klipy i widoczność w danym stanie, również w otwartym menu. Zdjąć z pomiaru obszary przejmowane przez inne działania.
  2. Mierzyć rzeczywisty region przyjmujący akcję. Sprawdzić możliwość umieszczenia pełnego osiowego kwadratu 24, a nie wyłącznie wymiary bounding box.
  3. Dla każdego zbyt małego celu ocenić pięć wyjątków. Przy spacing badać koło 24 przeciw rzeczywistym innym celom oraz kołom innych małych celów, również dużym i położonym w kolejnych rzędach.
  4. Wykonać zwykłe wejście w środku, blisko wewnętrznych granic oraz tuż poza nimi; sprawdzić otrzymane down/up i skutek, nie nazwę callbacku. Powtórzyć po zmianie istotnego layoutu lub overlay.
  5. Zapisać jednostki, zoom dokumentu, OS, viewport/DPR, geometrię, stan i pochodzenie builda. Przy nieznanym hit region zgłosić niepewność; brak wykrytego błędu nie oznacza zgodności.

Wejścia i rzeczywisty obszar celu

iOS: XCTest uruchamia /2-5-8/unknown/bad, co rzeczywiście daje pickup/good. Wykonuje trzy warianty, oba działania, tap 1 jednostkę od wewnętrznych rogów, tap 1 jednostkę ponad celem, tap 1 jednostkę za prawą granicą pierwszego celu, cykl i reset. W bad ostatni tap uruchamia godziny sąsiada, w control trafia w odstęp, w good również nie aktywuje celu. Root Listener rejestruje prawdziwe wejście; observer nie ustawia produktu.

Runtime odczytuje prostokąty RenderPointerListener i próbkuje hit-test całego widoku siatką 1 logical unit w punktach przesuniętych o 0,5, również 16 jednostek poza każdym celem. Wynik ma ciągłe wiersze 48 × 48 lub 20 × 20 zgodne z kodem prostokątnym i zwykłymi tapnięciami. Siatka sama nie udowadnia dowolnego kształtu z subpikselowymi dziurami ani rozszerzeń poza skanem; tutaj dokładne granice wynikają też z prostego renderera. Nie udajemy niezależnej obserwacji oczekiwanym bool passes.

WWW: CUA wykonuje normalne kliknięcia o geometrii odczytanej z DOM, a observer pasywnie zapisuje isTrusted pointerdown/up/click. elementFromPoint czyta rzeczywiste trafienie w siatce; źródło prostokątnych buttonów i surowe obrazy uzupełniają pomiar. Osobny przebieg C42 potwierdza klik linku i brak działania na pustej części kontenera. CSS zoom nie był używany jako poprawka. elementFromPoint zwrócił dla CSS 24 także próbki na ułamkowej krawędzi (25 punktów, początek 0,5 przed lewą/górną granicą); ta liczba nie jest pomiarem szerokości CSS. Dla good odczyt obejmuje całą wewnętrzną siatkę kwadratu 24, a zwykłe kliknięcia 1 jednostkę od granicy i poza nią potwierdzają działanie. Dla spacing korzystamy z DOM prostokątów i odczytu trafień; konserwatywna otoczka próbek rozszerzona o pół kroku zachowuje wynik: control ma środki 24 i odległość 13,5 do sąsiada, bad środki 20,5 i odległości 10–10,5. Nie przypisujemy odbiornikowi idealnej subpikselowej granicy na podstawie tej siatki.

Historyczne wyniki z 2026-10-04

Źródłem szczegółów są metadane, odczytowy wynik checkera i opis odtworzenia. Każdy PASS dotyczy podanego sprawdzenia i demonstracji; celowy bad ma lokalny wynik FAIL geometrii pomimo pozytywnego wykonania testu.

Sprawdzenie Wynik i zakres 2026-10-04
Analiza Pierwsza FAIL: konflikt State.activate, poprawiony. Kolejna PASS i po korekcie eksportu typu PASS.
Host 67 istniejących testów PASS, po zmianie eksportu 67 PASS. Nie zastępują rzeczywistej próby 2.5.8.
Build aplikacji Pierwszy PASS, końcowy PASS, przed install.
iOS v1 FAIL, test 12,980 s / całość 22,808 s. Tap pokazał adres; asercja nie uznała _TransformedPointerDownEvent za PointerDownEvent. Dwa stany / dwa wejścia / dwa PNG zachowane; nie ukryto niepowodzenia.
iOS v2 PASS: 1 test, 0 failures, 97,619 s / całość 104,300 s; 23 STATE/23 TREE/21 INPUT/14 PNG. Wynik końcowy w run-result i surowym logu; szczegółowe liczby zapisano w metadanych. V2 rozpoznaje typ przez is, zachowując rzeczywisty runtimeType.
WWW PASS: 29 odczytów DOM/AX, 22 zwykłe kliknięcia, 13 surowych JPEG z historią. Pierwszy FAIL odczytu po control-hours: pobrano poprzednią próbkę 250 ms. Świeży odczyt potwierdził ten sam otrzymany down/up i godziny, bez powtarzania tapu.
Inne frameworki / platformy SwiftUI, Compose, RN: dokumentacja REVIEWED, kompilacja i runtime NOT-RUN. Android, native desktop, dokumenty, kiosk i fizyczny telefon NOT-RUN.
AT i ustawienia OS VoiceOver, Voice Control, Switch Control, FKA, hardware pointer, zwiększony tekst, zmiany orientacji/wyglądu oraz zoom WWW NOT-RUN. Native AX nie jest testem czytnika.
Checker Pierwszy FAIL: liczba punktów elementFromPoint nie jest rozmiarem CSS; zachowano wersję historyczną. Końcowy checker oddziela te miary i używa zapisanych dowodów, bez powtórzenia UI.
Człowiek / zaślepiony walidator NOT-RUN; wymagają osobnego rzeczywistego przeglądu.

Dedykowany iPhone 17 Simulator, iOS 26.5, Xcode 27.0 (27A266a), Flutter 3.44.9 / Dart 3.12.2. Odczyty viewport 402 × 874 logical, DPR 3; PNG 1206 × 2622. WWW 1280 × 720 CSS, DPR 1, JPEG 1280 × 720; wersji silnika nie ustalono. Bez nowej zależności, Androida i osobnych aplikacji frameworków. Własne świeże drivery v1/v2 mają unikalne bundle ID, puste własne build-marker, jawne xctestrun i marker pochodzący z drivera. Manifesty before/after wiążą pełne źródła i built/installed bundli; nie przenoszą historycznej próby na późniejszy build.

Nie uznano odmowy zapisu cache SDK lub bind loopback w sandboxie za awarię hosta. Upoważnione testy wykonano z dostępem do istniejących SDK/IPC; bez restartu usług, kasowania danych urządzenia czy naprawy hosta. Serwer WWW, karta i własny runner zostały zakończone przed hashami końcowymi. Wszystkie końcowe i historyczne obrazy obejrzano. Snapshot 1516 wcześniejszych assetów porównano z bazą koordynatora; zachowano wszystkie pliki i SHA256.

Weryfikacja i ograniczenia

Deterministyczny checker tej demonstracji kontroluje integralność, rozmiar/ciągłość próbek prostokąta, spacing, otrzymane wejście i faktyczny wynik. Z etykiet wariantów korzysta tylko jako lokalny test oczekiwań; nie stanowią one wejścia zaślepionej oceny. Drzewo i bounding box są przybliżeniami hit region: nie dowodzą kształtu, clippingu, warstw, responsywności ani równoważności działań. AI odczytała źródła i dowody, ale nie wykonano oceny przez człowieka.

Pełny walidator potrzebuje mapy hit region w każdym istotnym stanie, jednostek i akcji sąsiadów oraz dowodów wyjątków. Powinien kierować do przeglądu elementy essential, prawnie wymagane, nieznaną bazową skalę dokumentu i niepewną geometrię; brak danych nie jest PASS. Nawet geometrycznie poprawny mały cel z wyjątkiem odstępów może pozostać trudny do użycia.

Jak sprawdza Clearship

Clearship mierzy ramy celów z drzewa dostępności w zapisanych stanach ekranu. Android przelicza piksele na dp, iOS używa pt; nieznana skala prowadzi do oceny człowieka. Metoda deterministyczna target-size-1 sprawdza ramę 24 × 24, koła odstępów o średnicy 24 i rozpoznany link w zdaniu.

Próg pomiaru tej ograniczonej metody został spełniony na Androidzie 8 października i na iOS 9 października 2026 r. Nie jest to potwierdzenie pełnego czynnego obszaru: rama dostępności nie pokazuje rozszerzenia dotyku, nieregularnego kształtu ani części przejętej przez nakładkę. Wynik blisko progu w pasie jednego piksela urządzenia, przycięte lub zagnieżdżone cele i brak pełnego drzewa trafiają do człowieka.

Równoważny cel, niezmieniony rozmiar platformowy oraz niezbędna prezentacja wymagają oceny kontekstu. Natywny link Androida w ClickableSpan może nie mieć osobnego węzła i wtedy nie jest badany. Treść webowa i stany poza zebraną trasą pozostają poza zakresem. Pomiary platformowe 48 dp lub 44 pt są pomocniczymi kandydatami, a nie progiem WCAG 2.5.8.

Powiązane kryteria