Co oznacza to kryterium
Gdy pomoc powtarza się na stronach tego samego zbioru, zachowaj jej kolejność względem reszty treści w tej samej odmianie układu. Użytkownik może wtedy wrócić do zapamiętanego punktu pomocy podczas problemu z zadaniem. Wyjątek obejmuje zmianę układu zainicjowaną przez użytkownika.
Kryterium nie wymaga stworzenia pomocy, umieszczenia jej na każdej stronie ani kontaktu z człowiekiem przez całą dobę.
| Potrzeba | Bariera, którą ogranicza spójny porządek |
|---|---|
cognitive — Pamięć i koncentracja |
Przeniesiona pomoc zmusza do ponownego szukania podczas trudności z zadaniem. |
blindness — Niewidzenie |
Stały punkt w sekwencji treści pomaga odnaleźć znany mechanizm; czytnika nie testowano. |
low-vision — Słabowidzenie |
Znane sąsiedztwo ułatwia znalezienie linku w oglądanym fragmencie ekranu. |
Przykłady błędów i poprawek
Własna Pracownia ma dwie strony wspólnego autora i celu: ustalenie odbioru i podsumowanie syntetycznego P-104. Treść podaje ul. Ogrodową 8 i piątek 10:00–18:00. Obie strony powtarzają „Pomoc przy odbiorze”, działający link do lokalnej samopomocy z instrukcją pokazania numeru obsłudze.
Problem: bad przenosi ten sam blok przed treść na drugiej stronie. Skutek: użytkownik przechodzący zwykłym Następny krok musi ponownie szukać pomocy. Poprawka: wspólny szablon umieszcza ją po treści obu kroków; samo przejście nie oznacza żądania reorganizacji.
| Wariant | Rzeczywiste zachowanie | Znaczenie |
|---|---|---|
| good | Treść → pomoc na pickup i review. | Zachowany porządek badanej pary. |
| bad | Pickup: treść → pomoc; review: pomoc → treść. | FAIL warunku 3.2.6 w zbiorze stron. |
| control | Jawne Przenieś pomoc na początek na review, ten wybór zachowany na pickup; reset wraca do końca. | Wykonany wyjątek inicjatywy użytkownika. |
| visual | CSS pokazuje pomoc na górze review, DOM i AX pozostają treść → pomoc. | Nie wykazano naruszenia 3.2.6; kontrola fałszywego alarmu z obrazu. |
| absent | Pomoc na pickup, brak na review również w AX. | Brak powtórzenia w tej parze; sam brak pomocy nie daje FAIL. |

2026-10-04, Codex IAB/macOS, surowy JPEG. Pierwsza strona ma samopomoc po treści; działający cel sprawdzono osobnym otwarciem linku.

Po zwykłym Następny krok porządek treść → pomoc pozostał taki sam. DOM/AX uzupełniają obraz o kolejność serializacji; nie jest to odczyt VoiceOver.

Przejście z bad/pickup przeniosło pomoc przed treść bez prośby o zmianę układu. To własne odtworzenie błędu w rzeczywistym zbiorze stron.

Zapis wejścia potwierdza jawne żądanie zmiany układu i zachowanie wyboru po powrocie. Surowy JPEG 1265×712 px ze scrollbarem; nie kadrowano go ręcznie.

CSS przesuwa blok, ale serializowany porządek pozostaje treść → pomoc. Obraz podobny do bad nie wystarcza do FAIL 3.2.6; nie jest to test czytnika.
Natywna analogia
Flutter/Cupertino odtwarza odbiór, podsumowanie, samopomoc w dialogu i jawne przeniesienie bloku w jednej aplikacji. Cykl good → bad → control zachowuje krok i usuwa ręczne ustawienie; reset przywraca początkową trasę i dane, a nieznana konfiguracja wraca do pickup/good. Przełączenie wariantu jest narzędziem demonstracji, nie preferencją użytkownika podczas ocenianego przejścia.

iPhone 17 Simulator / iOS 26.5, Flutter/Cupertino, końcowa próba 2026-10-04. Stała kolejność pokazuje dobrą praktykę w jednym programie; warunek zbioru programów nie zachodzi.

Natywny odczyt po tap potwierdza przestawiony blok w analogii. Nie nadajemy tej różnicy normatywnego FAIL dla zbioru programów ani statusu wypowiedzi VoiceOver.
Kiedy obowiązuje i gdzie są wyjątki
- Wymaganie normatywne: dotyczy powtarzanych w zbiorze stron danych kontaktowych człowieka, mechanizmu kontaktu z człowiekiem, samopomocy i w pełni automatycznego kontaktu. Pomoc może być bezpośrednia lub przez link. Porównuje się kolejność względem treści w tej samej odmianie układu, nie identyczne współrzędne pikseli.
- Interpretacja Understanding: przejście na następną stronę nie jest wyjątkiem zmiany układu przez użytkownika. Wyjątek obejmuje intencjonalną reorganizację lub zmianę powiększenia, orientacji czy rozmiaru widoku; porównania nadal dotyczą tej samej odmiany.
- Brak pomocy na części stron sam w sobie nie narusza 3.2.6. Nie ma obowiązku dostępności człowieka przez całą dobę. Statyczny PDF pobrany ze strony nie staje się stroną tego zbioru; jego ewentualny zbiór dokumentów ocenia się odrębnie.
- Sama zmiana położenia wizualnego przy zachowanej kolejności serializacji nie wystarcza do FAIL 3.2.6, choć może pogorszyć użyteczność. Odmienne cele mogą tworzyć odrębne zbiory. Pomoc kontekstowa przy polu jest innym zagadnieniem niż ogólny punkt samopomocy.
- G220, technika pomocnicza: link do kontaktu w spójnym miejscu, z kontrolą programowego i wizualnego porządku. Jej procedura zachęca do dostępności linku na wszystkich stronach; nie zamienia tego w normatywny obowiązek dodania pomocy. Nasz link prowadzi do samopomocy, a nie do kontaktu z człowiekiem, więc nie deklarujemy pełnego wykonania G220.
- Aktualny Understanding wymienia błąd „Inconsistent Help Location” bez osobnego numeru F. Opisane good/bad/control są własnymi fixture, bez danych o częstości błędów i bez utożsamiania ich z oficjalnym testem.
Platformy
Poza WWW podstawą interpretacji jest WCAG2ICT, Group Note 2025-12-11, a nie osobna norma zgodności. Poniższa klasyfikacja nie ustala obowiązków prawnych; EN 301 549 nie jest podstawą tego wykonania i nie dokonano mapowania jej wersji.
| ID / środowisko | Podstawa / ID | Stan | Warunek, adaptacja i uzasadnienie | Weryfikacja 2026-10-04 |
|---|---|---|---|---|
web / WWW |
WCAG 2.2 / 3.2.6 | dotyczy warunkowo | Pomoc powtórzona na stronach zbioru; bez adaptacji. Obejmuje przeglądarkę telefonu. | AI; lokalne WWW wykonane |
mobile / aplikacje mobilne |
WCAG 2.2 + WCAG2ICT 2025-12-11 / 3.2.6 | dotyczy warunkowo | Adaptacja do zbioru programów. Ekrany jednej aplikacji nie tworzą zbioru; przykład natywny jest dobrą praktyką. | AI; analogia iOS wykonana; Android NOT-RUN |
desktop / aplikacje desktopowe |
ta sama interpretacja / 3.2.6 | dotyczy warunkowo | Jak dla mobilnego oprogramowania; liczba okien nie rozstrzyga warunku. | AI; native NOT-RUN |
document / dokumenty cyfrowe |
ta sama interpretacja / 3.2.6 | dotyczy warunkowo | Adaptacja do zbioru dokumentów; pomoc musi się powtarzać między dokumentami. | AI; odbiornik NOT-RUN |
other / kiosk |
WCAG 2.2 lub WCAG2ICT 2025-12-11 / 3.2.6 | dotyczy warunkowo | WWW jak web, program jak mobile; tabela nie ocenia sprzętu. |
AI; urządzenie NOT-RUN |
Zbiór programów wymaga wspólnego celu/autora, wspólnej dystrybucji, niezależnego uruchamiania i wzajemnej nawigacji każdego programu do pozostałych. Zbiór dokumentów ma wspólny cel/autora, publikację i wzajemne odwołania. Nie dotyczy badanego scenariusza natywnego: Runner jest jednym programem, więc warunek zbioru nie zachodzi. Nie jest to wyłączenie całej platformy. W hybrydzie trzeba osobno ocenić treść webową.
Rozwiązania w technologiach
Wspólny obszar pomocy po treści każdego kroku ogranicza rozbieżności. Dla pojedynczej aplikacji natywnej jest to dobra praktyka; dla powtarzanej pomocy między członkami rzeczywistego zbioru programów rozwiązanie wymaga także spójnego wdrożenia w pozostałych programach. W osadzonym WWW należy zachować odpowiednią kolejność HTML; samo naprawienie natywnego przycisku nie naprawia strony.
Flutter / Dart
Istotny fragment wykonanej demonstracji, osadzony w Column wewnątrz SingleChildScrollView; help jest nazwanym CupertinoButton.filled otwierającym lokalny CupertinoAlertDialog:
final top = _userTop || (_variant == 'bad' && _review);
// Lista children wspólnej kolumny:
if (top) help,
content,
if (!top) help,To wycinek kontekstu, nie samodzielny program. Wariant good nie uzależnia miejsca pomocy od kroku. Pełny plik wraz z importem package:flutter/cupertino.dart zbudowano na iOS; natywny odbiornik sprawdza geometrię i kolejność drzewa, a nie tylko listę widgetów.
iOS / SwiftUI
import SwiftUI
struct HelpLayout<Content: View>: View {
let content: Content
let onHelp: () -> Void
var body: some View {
ScrollView {
VStack(alignment: .leading, spacing: 16) {
content
Button("Pomoc przy odbiorze", action: onHelp)
}
}
}
}Osadzić HelpLayout(content: widokKroku, onHelp: otworzPomoc) w każdym kroku. Callback musi faktycznie otworzyć pomoc, np. w istniejącej nawigacji; fragment określa wspólną strukturę, nie implementuje kontaktu z osobą. Nie zmieniać kolejności osobnym priorytetem dostępności.
Android / Jetpack Compose
import androidx.compose.foundation.layout.Column
import androidx.compose.material3.Button
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
@Composable
fun HelpLayout(content: @Composable () -> Unit, onHelp: () -> Unit) {
Column {
content()
Button(onClick = onHelp) { Text("Pomoc przy odbiorze") }
}
}Wspólny kontener zachowuje pomoc po treści; przewijanie zapewnia otaczający układ aplikacji. Nie kopiować osobno stopki i nie przenosić jej warunkowo zależnie od ekranu. Androida nie uruchamiano.
React Native
import type { ReactNode } from 'react';
import { Pressable, ScrollView, Text } from 'react-native';
export function HelpLayout({
children,
onHelp,
}: {
children: ReactNode;
onHelp: () => void;
}) {
return (
<ScrollView>
{children}
<Pressable accessibilityRole="button" onPress={onHelp}>
<Text>Pomoc przy odbiorze</Text>
</Pressable>
</ScrollView>
);
}Dzieci pozostają przed pomocą; treść i callback dostarcza ekran. Otaczający układ musi ograniczać wysokość ScrollView, np. przez przekazanie flex: 1 w hierarchii kontenerów. Dla aplikacji używającej WebView sprawdzić osobno DOM osadzonej strony.
HTML / CSS / JavaScript
<main id="content"><!-- Treść danego kroku --></main>
<nav aria-label="Pomoc">
<a href="support.html">Pomoc przy odbiorze</a>
</nav>pickup.html i review.html mają ten szablon, help.js wybiera wyłącznie fixture, a support.html dostarcza samopomoc. Najprostsza poprawka produkcyjna: pozostawić wspólny szablon bez warunku przenoszącego pomoc na drugim kroku; warianty celowo istnieją tylko w researchu.
| Technologia | Przegląd oficjalnych API | Kompilacja / typecheck | Działanie |
|---|---|---|---|
| Flutter | AI 2026-10-04: CupertinoButton, dialog, Semantics | PASS rzeczywistej aplikacji, Flutter 3.44.9 / Dart 3.12.2; wycinek nie jest oddzielnym buildem | Wykonane na iOS Simulatorze |
| SwiftUI | AI 2026-10-04: VStack, Button, ScrollView; dokumentacja Apple odczytana jako Markdown po ograniczeniu narzędzia WWW | NOT-RUN fragmentu | NOT-RUN; build Fluttera nie potwierdza SwiftUI |
| Compose | AI 2026-10-04: Column, Button, Text | NOT-RUN fragmentu | NOT-RUN |
| React Native | AI 2026-10-04: View, Pressable, ScrollView | NOT-RUN fragmentu | NOT-RUN |
| HTML/CSS/JS | AI 2026-10-04: struktura HTML i natywny link; DOM i AX rzeczywistego odbiornika | Bez kompilacji; odczyt i wykonanie JS w przeglądarce | Wykonane w Codex/macOS |
Brak buildów edukacyjnych fragmentów SwiftUI, Compose i React Native mieści się w uzgodnionym zakresie, nie tworzy automatycznych TODO. Ich wersji SDK nie podajemy jako użytych. Wersja przeglądarki/engine nie została udostępniona przez API obserwacji; metadane podają nazwę odbiornika i faktyczne rozmiary.
Jak sprawdzić
- Ustal rzeczywisty zbiór, kategorię i działający cel pomocy oraz odmianę układu. Najpierw sprawdź, czy natywny program należy do zbioru; nie zrównuj jego ekranów ze stronami.
- Porównaj pickup i review po zwykłym Następny krok: good ma pomoc po treści, bad przestawia ją przed treść. Zapisz porządek struktury oraz kontekst wizualny.
- Otwórz pomoc i sprawdź instrukcję odbioru. Sama etykieta bez działającego celu nie potwierdza samopomocy.
- W control jawnie przenieś blok, wróć i zresetuj. W visual porównaj geometrię z DOM/AX; w absent sprawdź brak również w strukturze.
- Zapisz wejścia i wyniki, osobno zakres konkretnego układu i zbioru. Dwie strony demonstracji nie potwierdzają całej aplikacji.
Rzeczywiste wykonanie źródła
Próba pochodzi z 2026-10-04 Europe/Warsaw; UTC części materiałów wskazuje 2026-10-03. Migracja 2026-10-12 nie ponawia wykonania.
| Sprawdzenie | Wynik i zakres |
|---|---|
| Flutter | Analiza PASS; 34 testy hostowe PASS, w tym cztery nowe 3.2.6, bez Androida. Build Flutter/iOS i drivera XCTest PASS. |
| Pierwszy XCTest | FAIL przed przechwyceniem: testowa konwersja CGFloat na Double. |
| Druga próba | FAIL przedwczesnej asercji zniknięcia przycisku podczas animacji zamknięcia dialogu; zachowano dwa odczyty, trzy tap i dwa kadry jako dane częściowe. |
| Końcowy XCTest | PASS: 1 test / 0 błędów, 49,618 s, 18 stanów, 19 tap, cztery PNG, trzy drzewa dialogu oraz krótka kontrola dawnej trasy 3.2.2. Aplikacja identyczna między próbami; driver czekał na faktyczne zniknięcie dialogu. |
| Odbiornik webowy | 14 odczytów z AX, 13 wejść: good, bad, control, visual, absent i działający cel pomocy. |
| Kontrola dowodów | PASS sekwencji i geometrii znanej fixture, mediów, hashów i linków; nie walidator zgodności. |
| Media | Obejrzane przez AI: pięć obrazów webowych, cztery końcowe iOS, dwa częściowe iOS; bez retuszu. Bez filmu/audio, pomiarów czasu lub kontrastu tego wymagania. |
| Człowiek | NOT-RUN. |
Flutter 3.44.9 / Dart 3.12.2; iPhone 17 Simulator / iOS 26.5. Odbiornik webowy Codex/macOS nie udostępnił wersji silnika. Większość JPEG ma 1280×720 px; control 1265×712 px. Odczyty DOM zapisują osobno obszar klienta, który nie jest metadanymi pikseli obrazu. Drzewo, odczyt i screenshot są sekwencyjne.
Weryfikacja i ograniczenia
| Metoda | Możliwy wniosek | Granica |
|---|---|---|
| Reguła deterministyczna fixture | Porównanie pozycji tego samego bloku względem content na znanych stronach |
Zakłada prawidłowo ustalony zbiór, mechanizm i odmianę układu; nie odkrywa ich sama |
| Przybliżenie z drzewa | Względny porządek znanych punktów w DOM/AX/XCTest | Identyczne nazwy mogą prowadzić do różnych celów; drzewa natywne nie tworzą zbioru programów |
| Ocena AI obrazu | Kandydat przeniesienia pomocy | visual wygląda jak bad, ale wymaga innego wniosku; pojedynczy kadr nie wystarcza |
| Ocena człowieka | Ustalenie intencji zmiany układu i zakresu produktu | NOT-RUN; automatyczny zapis wejścia nie jest zatwierdzeniem interpretacji |
Brak pomocy nie dowodzi naruszenia tego kryterium, a brak wykrytej zmiany nie potwierdza całej aplikacji. Zmiana ekranu zainicjowana przyciskiem nawigacji nie jest równoznaczna ze świadomą zmianą układu. Do oceny potrzebne są co najmniej porównywane stany i cel pomocy, a często także zapis wyboru użytkownika.
ID, adresy i ustawienia demonstracji ujawniają wariant. W zaślepionej ocenie nie mogą zastąpić obserwacji ani przekazywać oczekiwanego wyniku.
Jak sprawdza Clearship
Clearship zbiera set-evidence-1 w P0: kandydatów na zbiór ze stanów wspólnego tytułu, kontrolki nazwane Pomoc, Wsparcie, Czat, FAQ lub Infolinia i ich porządek przed/za treścią oraz względem wspólnych elementów. Strony zmieniane w jednym widoku wymagają zapisanych obserwacji akcji actionEvidence.
Wynik zawsze wymaga człowieka (incomplete); Android i iOS mają not-measured, bez progu. Człowiek ustala kwalifikację zbioru, rzeczywisty typ/cel pomocy, odmianę układu i intencję jego zmiany. Dane kontaktowe w treści, pomoc po rozwinięciu i Kontakt w nawigacji pozostają w dowodach do oceny, bez osobnego rozpoznania jako pomoc.
Brak pomocy, kandydata albo odczytu nie daje ani usterki 3.2.6, ani wyniku „nie znaleźliśmy problemów”. Sama geometria i zwykłe przejście na kolejną stronę nie rozstrzygają wyjątku. Dowody jednej aplikacji nie tworzą zbioru programów; demonstracja nie jest pomiarem tej metody. Ręczna ocena nie oznacza zamówienia usługi człowieka.