Co oznacza to kryterium
Powtarzane komponenty wykonujące tę samą funkcję w zbiorze stron mają zachować rozpoznawalną identyfikację. Użytkownik powinien znaleźć znane działanie dzięki zapamiętanej nazwie lub ikonie. Tekst może uwzględniać kontekst, jeżeli nadal jasno identyfikuje funkcję.
| Potrzeba | Jak pomaga spójna identyfikacja |
|---|---|
cognitive — Pamięć i koncentracja |
Znana nazwa ogranicza ponowne uczenie się działania na kolejnej stronie. |
blindness — Niewidzenie |
Rozpoznawalna nazwa dostępna pomaga odnaleźć tę samą funkcję bez obrazu. |
low-vision — Słabowidzenie |
Stały tekst lub znak ułatwia rozpoznanie w oglądanym fragmencie interfejsu. |
To przypisanie potrzeb wynika z bariery, bez badania doświadczeń użytkowników AT.
Przykłady błędów i poprawek
Własna Pracownia ma dwie strony HTTP jednego autora i celu: Start i Zamówienia. Użytkownik wpisuje syntetyczne P-104, wyszukuje zamówienie na Starcie, przechodzi do Zamówień i powtarza wyszukiwanie. Dane, styl i działanie są wspólne; good/bad różnią się identyfikacją drugiej instancji.
Problem: Szukaj staje się Znajdź, choć oba działania zwracają „P-104: gotowe. Dwa kubki.”. Skutek: nowa nazwa sugeruje inne działanie i wymusza jego rozpoznawanie. Poprawka: wspólny komponent zachowuje widoczny tekst i dostępną nazwę Szukaj.
| Wariant | Start → Zamówienia | Rzeczywisty wynik |
|---|---|---|
| good | Szukaj → Szukaj | Ten sam status P-104 w obu instancjach. |
| bad | Szukaj → Znajdź | Ten sam status; nieuzasadniona zmiana nazwy odtwarza F31. |
| control | Szukaj → Godziny odbioru | Status zamówienia → odbiór 6 października, 16:00–18:00. Różne funkcje nie są parą tego wymagania. |

2026-10-04, rzeczywista strona HTTP Pracowni w Codex IAB/macOS. Po wyszukaniu P-104 pierwsza instancja ma nazwę Szukaj; kadr nie dowodzi samodzielnie funkcji drugiej instancji.

Po przejściu ze Startu i ponownym wyszukaniu nazwa oraz wynik pozostają spójne. Sekwencja DOM/AX i zwykłych wejść potwierdza wynik obu instancji; nie jest testem czytnika.

Pierwsza instancja bad nadal używa nazwy Szukaj. Wspólne dane i lokalny wynik pozwalają porównać ją z drugą instancją w Zamówieniach.

Po zwykłym przejściu ta sama funkcja nazywa się Znajdź. Para odtwarza nieuzasadnioną zmianę identyfikacji w rzeczywistym zbiorze stron; nie jest znaleziskiem w aplikacji klienta.
Mobilna analogia
Flutter/Cupertino odtwarza tę samą parę wewnątrz jednej aplikacji. Spójność jest tu dobrą praktyką. Normatywny warunek zbioru programów nie zachodzi; sam podobny interfejs nie zmienia tego zakresu.

iPhone 17 Simulator / iOS 26.5, końcowa próba 2026-10-04. Nazwa Szukaj pokazuje dobrą praktykę jednego programu; widoki tej aplikacji nie tworzą zbioru programów WCAG2ICT.

Końcowa natywna próba po dotknięciu Znajdź. XCTest potwierdza nazwę i wynik, lecz mobilnej analogii nie kwalifikujemy jako normatywnego FAIL zbioru programów ani jako odczytu VoiceOver.
Kiedy obowiązuje i gdzie są wyjątki
Ta sama funkcjonalność oznacza ten sam wynik po użyciu. Nie rozstrzyga o niej wspólny handler, string, identyfikator, ikona lub URI. Trzeba ustalić zakres danych, skutek i kontekst użytkownika, następnie uruchomić funkcję; ten sam adres może dawać różne wyniki, a różne adresy równoważne.
Normatywny zbiór WWW tworzą strony ze wspólnym celem i autorem/grupą/organizacją. Strona jest zasobem pobranym z URI przez HTTP wraz z renderowanymi zasobami; nie każdy wewnętrzny ekran jest oddzielną stroną. Odrębne wersje językowe są odrębnymi zbiorami. Powtarzane wyszukiwanie w naszym wspólnym szablonie występuje na /home.html i /orders.html: dwa rzeczywiste zasoby HTTP jednego autora, służące obsłudze zamówień Pracowni.
Rozpoznawalność odnosi się do powtarzanych instancji komponentu. Niezależny link „Kontakt” w stopce i kontekstowy link do wsparcia w treści polityki nie muszą być tym samym powtarzanym komponentem, choć oba prowadzą do kontaktu. Dwa wyszukiwania w nagłówku i stopce mogą natomiast być takimi instancjami, także na jednej stronie. Treść niefunkcjonalna nie jest przedmiotem tego SC; jej spójność jest dobrą praktyką.
Spójność nie wymaga zawsze identycznych stringów. „Strona 4” oraz „Poprzednia strona” oglądane ze strony 5 mogą identyfikować ten sam cel w rozpoznawalnym kontekście; „Przejdź do strony 4/5” uwzględnia cel kolejnej strony. W responsive widoczny „Szukaj” i lupa z dostępną nazwą „Szukaj” mogą zachować rozpoznawalność. Nie daje to zgody na dowolne synonimy: recurring „Search”/„Find” jest wskazanym błędem, a F31 obejmuje również „Save page”/„Save” dla tej samej funkcji.
Widoczna etykieta, dostępna nazwa, alternatywa tekstowa i ikona są sposobami identyfikacji. Stała nazwa dostępna „Zapisz” nie usuwa wizualnego problemu zamiany dyskietki na checkmark dla tej samej funkcji zapisu. Ta sama ikona drukarki przy drukowaniu faktury i potwierdzenia nie uruchamia wymogu 3.2.4 między tymi różnymi wynikami; dokładne etykiety są nadal dobrą praktyką i mogą podlegać innym SC.
G197 jest techniką wystarczającą, stosowaną z odpowiednimi technikami 1.1.1 i 4.1.2 dla nazw i alternatyw. Jej procedura wymaga identycznego tekstu powiązanego z komponentami tej samej funkcji; to droga bardziej restrykcyjna niż minimalna norma. Niespełnienie procedury G197 samo nie dowodzi FAIL 3.2.4. F31 jest opisem błędu, nie uniwersalnym testem nierówności stringów; zawiera też przykład dopuszczalnych kontekstowych PageN. Nie należy twierdzić, że wszystkie różnice etykiet są dopuszczalne.
Katalog ACT sprawdzony 2026-10-04 nie zawiera reguł dla 3.2.4. Reguły innych SC dla niepustej nazwy linku/pola lub relacji nazwy do widocznej etykiety nie ustalają spójności całego zbioru i rzeczywistych wyników. Silnik ACT NOT-RUN; własny checker nie jest ACT.
Platformy
Każdy wiersz dotyczy 3.2.4. Weryfikacja interpretacji: AI, 2026-10-04, człowiek NOT-RUN. Podstawą dla WWW jest normatywne WCAG 2.2; poza WWW korzystamy z informacyjnej wskazówki WCAG2ICT 2.2 Group Note 2025-12-11, która nie jest normą zgodności ani ustaleniem obowiązku prawnego.
| ID / środowisko | Podstawa, stan i adaptacja | Warunek, zakres i uzasadnienie | Wykonanie |
|---|---|---|---|
web — WWW |
WCAG 2.2, 3.2.4; dotyczy warunkowo, bez zmiany | Powtarzany komponent o tym samym wyniku w zbiorze stron wspólnego autora/celu. Obejmuje również kilka instancji na tej samej stronie w obrębie zbioru; telefon nie zmienia podstawy treści webowej. | Rzeczywisty zbiór HTTP Pracowni na macOS; mobilna przeglądarka NOT-RUN. |
mobile — aplikacje mobilne |
WCAG2ICT, 3.2.4; dotyczy warunkowo, z adaptacją zbioru | Zbiór programów rozprowadzanych razem, uruchamianych/używanych niezależnie, wzajemnie połączonych metodą nawigacji w każdym z nich. Takie zbiory są bardzo rzadkie. Widoki jednej aplikacji nie są takim zbiorem; spójność wewnątrz programu jest dobrą praktyką. | Flutter/Cupertino na iOS Simulator: analogia dobrej praktyki. Normatywny warunek zbioru nie dotyczy badanego natywnego scenariusza. |
desktop — aplikacje desktopowe |
WCAG2ICT, 3.2.4; dotyczy warunkowo, ta sama adaptacja | Sprawdzić rzeczywisty zbiór programów; sam pakiet biurowy lub menu systemowe nie wystarcza. Przenoszenie wiedzy między widokami pojedynczego programu pozostaje dobrą praktyką. | Native desktop NOT-RUN; desktopowy odbiornik WWW pozostaje web. |
document — dokumenty cyfrowe |
WCAG2ICT, 3.2.4; dotyczy warunkowo, zbiór dokumentów | Wspólny autor/cel, publikacja razem i wzajemne odniesienia nazwą lub linkiem, np. wieloczęściowy raport w oddzielnych plikach. Samo późniejsze spakowanie plików nie tworzy zbioru. Spójność w pojedynczym dokumencie to dodatkowa dobra praktyka. | Dokument i jego odbiornik NOT-RUN. |
other — oprogramowanie kiosku lub telewizora |
WCAG2ICT, 3.2.4; dotyczy warunkowo, zbiór programów; dla WWW jak web |
Wyznaczyć część webową/natywną. Brak niezależnego uruchamiania oznacza brak takiego zbioru; closed functionality wymaga osobnej oceny dostępności i nie jest ogólnym zwolnieniem urządzenia. Tabela nie ocenia sprzętu. | Kiosk/TV NOT-RUN. |
Nie ustalano wymagań EN 301 549 ani podstaw prawnych. Brak wykonania nie oznacza „braku odpowiednika w normie” lub wyłączenia platformy. Części natywną i webową hybrydy rozpatrywać osobno. Definicje zbiorów i warunki są istotniejsze niż etykieta systemu operacyjnego.
Rozwiązania w technologiach
Wspólne rozwiązanie: przechowuj nazwę rozpoznanej funkcji w jednym komponencie lub zasobie lokalizacji, powtarzaj go tam, gdzie rzeczywiście powtarza się funkcja i kontekst. Nie naprawiaj samej nazwy dla czytnika, pozostawiając niespójny tekst/ikonę. Dla odrębnej funkcji wybierz opis jej działania. Oficjalne API poniżej sprawdzone 2026-10-04; uproszczone fragmenty są edukacyjne i nie zastępują testu całej aplikacji.
Flutter / Dart
import 'package:flutter/cupertino.dart';
class OrderSearchAction extends StatelessWidget {
const OrderSearchAction({super.key, required this.search});
final VoidCallback search;
@override
Widget build(BuildContext context) => CupertinoButton(
onPressed: search,
child: const Text('Szukaj'),
);
}Obie instancje używają tego samego komponentu i funkcji wyszukiwania tego samego zakresu danych. Text zapewnia nazwę standardowego przycisku; jawny override powinien zachować jej znaczenie. Oficjalne CupertinoButton/Semantics odczytano; pełna demonstracja używa dodatkowych identyfikatorów Semantics do odczytów. Flutter 3.44.9, Dart 3.12.2: pełna aplikacja analiza/build/runtime iOS wykonane. Powyższy skrót nie był osobno kompilowany.
iOS / SwiftUI
import SwiftUI
struct OrderSearchAction: View {
let search: () -> Void
var body: some View {
Button("Szukaj", action: search)
}
}Powtarzaj widok przy tym samym wyszukiwaniu. Dokumentacja Apple Button potwierdza etykietę opisującą działanie; Label z symbolem może obsługiwać prezentację ikony z nazwą, lecz trzeba sprawdzić rozpoznawalność w kontekście. Odczyt oficjalnego JSON po niedostępnym odbiorniku Markdown. Typecheck/build/runtime SwiftUI NOT-RUN. XCTest Swift jest harnessiem, nie aplikacją SwiftUI; nie przypisujemy mu wersji wykonania fragmentu.
Android / Jetpack Compose
import androidx.compose.runtime.Composable
import androidx.compose.material3.Button
import androidx.compose.material3.Text
@Composable
fun OrderSearchAction(search: () -> Unit) {
Button(onClick = search) { Text("Szukaj") }
}Semantyka Button scala tekst potomka; unikaj przypadkowego zastąpienia go innym contentDescription. Wystąpienia tego samego wyszukiwania zachowują nazwę, a ewentualna dekoracyjna ikona nie zastępuje celu. Oficjalna dokumentacja semantyki i Button sprawdzona. Kompilacja/runtime Kotlin/Compose oraz Android NOT-RUN, bez osobnej aplikacji, zależności ani zadania ich testowania.
React Native
import { Pressable, Text } from 'react-native';
export function OrderSearchAction({ search }: { search: () => void }) {
return (
<Pressable
accessible
accessibilityRole="button"
accessibilityLabel="Szukaj"
onPress={search}
style={{ padding: 16 }}
>
<Text>Szukaj</Text>
</Pressable>
);
}Widoczny tekst i jawna nazwa są spójne; wspólny komponent pomaga zachować je w obu instancjach. Oficjalne Pressable/accessibilityLabel sprawdzone. Typecheck/build/runtime RN/TS NOT-RUN, bez deklaracji użytej wersji RN.
HTML / CSS / JavaScript
<form method="get" action="/orders.html">
<label for="order-query">Numer zamówienia</label>
<input id="order-query" name="q" />
<button name="action" value="search">Szukaj</button>
</form>To szkic komponentu osadzanego na stronach wspólnego zbioru. Serwer musi faktycznie obsłużyć q/action i zwrócić ten sam zakres wyników; sam zapis href/action tego nie dowodzi. Oficjalny HTML forms/button sprawdzony; pełny serwer działa na standardowej bibliotece Pythona, bez frameworka, renderuje good/bad/control, reset i fallback. Jego rzeczywiste działanie HTTP oraz odbiornik WWW wykonano; skrót osobno NOT-RUN. Zmiana CSS nie może zaburzać rozpoznawalności funkcjonalnej ikony.
Jak sprawdzić
- Wyznacz rzeczywisty zbiór i dopasuj powtarzane instancje komponentu. Ustal autora, cel, kontekst i dane.
- Porównaj widoczny tekst, ikonę, dostępną nazwę oraz rolę. Nie ograniczaj oceny do równości tekstów.
- Użyj obu funkcji z tymi samymi danymi i zapisz wynik. Handler lub URI nie potwierdzają równoważności działania.
- W Pracowni wpisz P-104, użyj Szukaj na Starcie i w Zamówieniach, następnie przejdź przez good → bad → control → good. Reset ma wyczyścić pole i przywrócić Start/good; nieznana trasa otwiera good.
- Good zachowuje identyfikację, bad odtwarza F31, a control zwraca odrębne godziny odbioru. Kontekstowych nazw i odrębnych funkcji nie zgłaszaj wyłącznie z powodu różnicy tekstu.
Rzeczywiste wykonanie źródła
Wyniki pochodzą z 2026-10-04. Redakcja 2026-10-12 nie jest ponowną próbą.
| Sprawdzenie | Wynik i granica |
|---|---|
| Flutter 3.44.9 / Dart 3.12.2 | Analiza i build iOS PASS; 67 istniejących testów hostowych PASS to regresja wcześniejszych demonstracji, nie dowód iOS 3.2.4. |
| Pierwsza próba iOS | FAIL harnessu: 48,042 s XCTest / 67,176 s orkiestracji; zapisano 17 stanów/drzew, 17 wejść i 8 PNG. Ostatnia asercja błędnie oczekiwała placeholdera zamiast pustej wartości. |
| Końcowa próba iOS | PASS: 45,931 s XCTest / 54,067 s orkiestracji, 17 stanów/drzew, 17 wejść i 8 PNG; fallback, cykl, wyniki oraz pusty reset. Aplikacja identyczna; poprawiono marker i asercję drivera. |
| Zbiór webowy | 17 DOM/AX, 16 działań po otwarciu, 32 zdarzenia trusted i 8 JPEG. Wykonano pięć znaków wejścia oraz 15 kliknięć, wspólny wynik, kontrolę różnych funkcji, cykl i reset. |
| Przygotowanie webowe | FAIL odczytu sessionStorage przed pierwszym działaniem; ograniczone evaluate nie udostępniało tego API. Pasywny dataset rejestruje wejścia, bez ustawiania wyniku. |
| Checker dowodów | Kontrola znanej fixture, sekwencji, nazw, wyników, geometrii, hashów i linków; nie ACT, benchmark ani zaślepiona ocena kryterium. |
| Media | AI obejrzała surowe końcowe i historyczne obrazy; bez retuszu lub ilustracji AI. Nie nagrywano filmu/audio i nie badano wypowiedzi czytnika. |
Środowisko iOS: Xcode 27.0 (27A266a), SDK symulatora 27.0, iPhone 17 Simulator / iOS 26.5, widok 402×874 pt, PNG 1206×2622 px. Odbiornik webowy: Codex IAB/macOS, 1280×720 CSS px, DPR 1, JPEG 1280×720; wersja silnika nieustalona. Jasny renderer i domyślny tekst, bez pełnego audytu ustawień systemu. Odczyty są sekwencyjne, bez deklaracji atomowego pomiaru.
Weryfikacja i ograniczenia
Deterministyczny checker porównuje zapisane konkretne odczyty, powtarzalność danych, wyniki działań, nazwy, geometrię, logi, hashe i linki. Zna nasze ID/scenariusze i oczekiwania, dlatego jego PASS oznacza spójność dowodów fixture. Nie jest benchmarkiem, ACT ani niezależnym wynikiem merytorycznym całego kryterium.
Drzewo/DOM może wskazać rozbieżność nazwy, lecz nie ustala automatycznie równoważności funkcji, granic zbioru i rozpoznawalności. Screenshot pokazuje widoczną identyfikację, ale nie dostępną nazwę i wynik każdej ścieżki. AX jest przybliżeniem informacji dostępnej dla AT, nie testem rzeczywistej wypowiedzi VoiceOver. Przy dopasowaniu komponentów brać pod uwagę kontekst, rolę, zakres danych, wystąpienia responsive i użytkownika; tłumaczenia, PageN i odrębne funkcje są źródłami fałszywych alarmów equality-checkera. Taki sam label nie dowodzi spójności ikon lub jednakowego wyniku. Brak danych daje niepewność, nie PASS.
Ocena AI obejmuje interpretację, kod i oględziny mediów. Człowiek, zaślepiony walidator i silnik ACT NOT-RUN; brak reguł ACT nie znosi wymagania. Oczekiwane warianty nie mogą być wejściem zaślepionego badania.
Jak sprawdza Clearship
Clearship zbiera w P0 dowody set-evidence-1 dla oceny człowieka: stany o wspólnym tytule, obszary powtarzane, kontrolki z tą samą nazwą i najbliższe pozycją kontrolki nazwane inaczej. Słownik podobnych nazw, np. Szukaj/Znajdź, dodaje wskazówkę; nie ustala równoważności funkcji.
Wynik zawsze wymaga człowieka, wykonanie jest incomplete, znaleziska to kandydaci. Android i iOS mają not-measured, bez progu. Człowiek kwalifikuje rzeczywisty zbiór, instancje, wyniki funkcji i rozpoznawalność. Stany jednego tytułu ani ekrany jednej aplikacji nie potwierdzają zbioru programów.
Strony zmieniane bez zmiany widoku wymagają zapisanych obserwacji akcji actionEvidence. Nie każda kontrolka drugiej strony została użyta w P0. Ikony bez nazw, kontrolki poza powtarzanym obszarem i ta sama nazwa różnych funkcji nie są rozstrzygane; brak danych lub kandydata nie daje wyniku „nie znaleźliśmy problemów”. Edukacyjna demonstracja nie jest pomiarem produktu; wybór ręcznej oceny nie zamawia usługi człowieka.