1.2.2Poziom A

Napisy rozszerzone — nagranie

Captions (Prerecorded)

Zapewnij zsynchronizowane napisy do nagranego audio, z wypowiedziami i ważnymi dźwiękami; wyjątek dotyczy jasno oznaczonej alternatywy równoważnego tekstu.

Komu pomaga
Niesłyszenie i niedosłuchPamięć i koncentracja
Zastosowanie
WWWAplikacje mobilneAplikacje desktopoweDokumenty cyfroweInne urządzenia

Warunki i wyjątki opisano w artykule.

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

Co oznacza to kryterium

Osoba oglądająca nagranie bez słyszenia dźwięku powinna móc przeczytać jego znaczenie w odpowiednim momencie. Napisy obejmują wypowiedzi, potrzebne identyfikacje osób oraz ważne sygnały, muzykę i inne dźwięki. Mogą być stale widoczne lub włączane w odtwarzaczu. Sam przycisk CC i sam tekst pod filmem nie potwierdzają ich działania.

Pomaga to osobom Głuchym i słabosłyszącym, a także korzystającym chwilowo bez dźwięku. Dla części osób z trudnościami językowymi lub poznawczymi tekst ułatwia śledzenie wypowiedzi; szybkość i forma napisów nadal wymagają oceny. Napisy nie zastępują opisu informacji dostępnych wyłącznie w obrazie.

Przykłady błędów i poprawek

Ten sam film z napisami i bez nich

Własna „Pracownia” pokazuje zmianę punktu odbioru zamówienia 024 z Centrum, Ogrodowa 8, na Park, Leśna 12. Dane są syntetyczne. Obraz pochodzi z wcześniejszych rzeczywistych działań XCTest na iOS Simulator. Dodane audio jest syntezą Zosia pl_PL i dwoma tonami — to ścieżka filmu, bez głosu człowieka i bez VoiceOver.

Oba źródłowe MP4 mają po 17,333 s, H.264 804 × 1958 px, 60 fps i identyczne pakiety AAC mono. Poprawka dodaje pięć kwestii na czarnym pasie poza oryginalnym obrazem. W błędnej wersji ten pas jest pusty. Nie zmieniono kolejności, danych ani dźwięku.

Plik źródłowy z napisami otwartymi, przygotowany 2026-10-02. Napisy są częścią obrazu; odtwarzacz nie musi ładować osobnego VTT.

Wariant edukacyjny z pustym pasem. Zawiera to samo audio i obraz; opis poniżej pozwala zapoznać się z materiałem bez jego odtwarzania.

Problem
Film przekazuje polecenia i sygnał zapisania wyłącznie dźwiękiem.
Skutek
Odbiorca bez słyszenia nie poznaje wybranego punktu, znaczenia sygnału ani terminu odbioru.
Poprawka
Dodaj zsynchronizowane napisy do wypowiedzi i dwóch sygnałów potwierdzenia. Sprawdź ich pełny przebieg w docelowym odtwarzaczu.

Pełny opis obrazu i dźwięku

Na początku zamówienie 024 ma punkt Centrum, Ogrodowa 8. Użytkownik otwiera wybór punktu, wybiera Park przy Leśnej 12, potwierdza zmianę i widzi zapisany wybór oraz termin 6 października 2026. Kolejne stany i wypowiedzi:

Czas filmu Dźwięk i napis Kontekst obrazu
0,500–1,991 s Lektorka: „Zmień punkt odbioru.” Początek instrukcji dla zamówienia 024 i punktu Centrum.
4,500–7,223 s Lektorka: „Wybierz punkt Park przy ulicy Leśnej 12.” Wybór Parku w ekranie punktów.
9,000–10,999 s Lektorka: „Potwierdź zmianę punktu odbioru.” Potwierdzenie wybranego punktu.
13,000–13,800 s Dwa krótkie sygnały: zmiana zapisana. Przejście do zapisanego wyboru.
14,000–16,687 s Lektorka: „Nowy termin odbioru: 6 października.” Końcowy stan po zmianie punktu.

Między kwestiami są przerwy; film nie zawiera innych wypowiedzi. Daty i adresy należą do własnego przykładu. Istniejący plik VTT zachowuje pełny tekst i czasy; tutaj jest materiałem do pobrania, bez deklaracji, że demonstracja iOS ładowała go jako ścieżkę.

Nagranie odtwarzania jest osobnym dowodem

Eksport istniejącego nagrania simctl/XCTest, bez audio. Pokazuje rzeczywisty przebieg odtwarzania na iOS Simulator; nie dowodzi odsłuchu. Eksport do 60 fps powiela istniejące klatki, bez interpolacji ani naprawy utraconego ruchu.

Źródłowa AI obejrzała 24 klatki tego przebiegu, wszystkie pięć kwestii i cztery stany instrukcji. To nie przegląd człowieka ani potwierdzenie poprawnej wymowy syntezatora.

Inne usterki i kontrola wyjątku

Sytuacja Poprawka lub granica
Same dialogi, bez znaczącego sygnału lub potrzebnej identyfikacji mówiącego Uzupełnij informacje potrzebne do rozumienia. Nie trzeba podpisywać każdego zdania, gdy osoba jest oczywista.
VTT istnieje, ale odbiornik go nie ładuje albo CC wybiera pustą ścieżkę Sprawdź konfigurację i rzeczywiste wyświetlenie, także po pauzie i przewinięciu.
Błędne słowa albo tekst po właściwym zdarzeniu Porównaj tekst oraz czas z nagraniem; ASR samo nie dowodzi jakości.
Transkrypcja pod samodzielnym filmem Zapewnij synchronizację; sam tekst pomocniczy nie zastępuje napisów.
Jasno oznaczony film jako alternatywa kompletnego tekstu Wyjątek może obowiązywać, jeśli film nie dodaje informacji. Źródłowy wariant exception pokazywał pełną instrukcję, wypowiedzi i sygnał przed filmem.

Poza główną parą i wariantem exception są to scenariusze edukacyjne, bez deklaracji ich osobnego wykonania.

Kiedy obowiązuje i gdzie są wyjątki

Nagranie to materiał przygotowany wcześniej. Archiwum transmisji ocenia się jako nagranie. Media zsynchronizowane obejmują też audio z czasową prezentacją slajdów; samo audio oraz niemy film mają odrębne wymaganie 1.2.1.

Napisy przekazują ważne informacje dźwiękowe. Nie trzeba katalogować nieznaczącego szumu, ale film bez dialogów może wymagać opisu znaczącej muzyki lub alarmu. Same tłumaczenia dialogu mogą być niepełne. 1.2.2 nie ustanawia uniwersalnego limitu znaków, szybkości czy tolerancji opóźnienia jako progu normatywnego.

Wyjątek wymaga równoważnego pełnego tekstu i wyraźnego oznaczenia medium jako jego alternatywy. Dopisek „wersja tekstu” przy filmie z dodatkowymi faktami ani krótki opis „film pokazuje zmianę punktu” nie wystarczą.

Napisy otwarte mogą być stale widoczne; możliwość ich wyłączenia nie jest konieczna dla 1.2.2. Zamknięte wymagają rzeczywistego wyboru i odtwarzania ścieżki. Tekst ma pozostać czytelny i nie zasłaniać ważnego obrazu. Ten wpis nie potwierdza innych wymagań odtwarzacza lub kontrastu.

Platformy

Źródłowa interpretacja AI z 2026-10-02 stosuje WCAG 2.2 do WWW oraz WCAG2ICT bez zmiany wymagania do dokumentów i oprogramowania. To wskazówka interpretacyjna, bez rozstrzygnięcia obowiązków prawnych.

Środowisko Warunek Wykonanie źródłowe
WWW, także telefon Nagranie audio zsynchronizowane z obrazem lub prezentacją. Przegląd HTML track; przeglądarka niewykonana.
Mobilne Film w faktycznym natywnym lub webowym odbiorniku. Flutter/Cupertino z AVKit na iOS Simulator; Android niewykonany.
Desktop Np. nagrany kurs w programie. Narzędzie produkcji filmu na macOS nie jest testem takiego odbiornika. Niewykonane.
Dokument Odtwarzane nagranie w dokumencie lub prezentacji; statyczny tekst bez mediów nie spełnia warunku. Niewykonane.
Kiosk Instruktaż z audio w oprogramowaniu urządzenia. Zamknięta funkcjonalność nie usuwa potrzeby napisów. Sprzęt i odbiornik niewykonane.

Brak filmu w konkretnym scenariuszu nie wyłącza całej platformy. W hybrydzie zbadaj właściwy odbiornik.

Rozwiązania w technologiach

Dla krótkiej instrukcji wystarcza istniejący film z napisami otwartymi. Wybór języka, wyglądu lub zamkniętej ścieżki wymaga formatu wspieranego w docelowym odbiorniku i kontroli wyboru.

Flutter

import 'package:flutter/services.dart';

const media = MethodChannel('eu.clearship.research/media');
Future<void> openCaptionedMovie() =>
    media.invokeMethod<void>('play', 'captioned');

To fragment istniejącego kanału iOS. Pełny ekran obsługuje PlatformException, brak pluginu, wariant i reset. Natywny kanał dopuszcza tylko cztery własne assety, bez dowolnych ścieżek/URL, używa AVPlayerViewController i zatrzymuje odtwarzanie przy powrocie. Dokumentacja, analiza, widget, build iOS i wykonanie: sprawdzone w źródle. Android nie ma tego odtwarzania.

iOS / SwiftUI

import SwiftUI
import AVKit

struct CaptionMovie: View {
    let movieURL: URL
    @State private var player: AVPlayer?
    var body: some View {
        VideoPlayer(player: player)
            .task { if player == nil { player = AVPlayer(url: movieURL) } }
            .onDisappear { player?.pause() }
    }
}

movieURL wskazuje lokalny film z otwartymi napisami. Podanie zewnętrznego VTT samemu AVPlayerowi nie dołącza ścieżki: potrzebna jest wspierana konfiguracja. Dokumentacja 2026-10-02 i typecheck SDK Simulator 27.0, target iOS 17: PASS. Osobne działanie SwiftUI: niewykonane; demonstracja używała Flutter i UIKit/AVKit.

Android / Compose

import android.net.Uri
import androidx.media3.common.MediaItem
import androidx.media3.exoplayer.ExoPlayer

fun loadCaptionedMovie(player: ExoPlayer, localMovieUri: Uri) {
    player.setMediaItem(MediaItem.fromUri(localMovieUri))
    player.prepare()
}

Kontekst: istniejące Media3 ExoPlayer i PlayerView, osadzane w Compose przez AndroidView. Właściciel zarządza cyklem życia i release. Film ma napisy otwarte. Przy zamkniętych SubtitleConfiguration potrzebuje właściwego MIME, języka, wyboru i widoku renderującego. Dokumentacja 2026-10-02: sprawdzona; kompilacja i działanie: niewykonane.

React Native

import Video from 'react-native-video';

export function CaptionMovie() {
  return (
    <Video
      source={require('./delivery-with-captions.mp4')}
      controls
      resizeMode="contain"
      style={{ width: '100%', height: 420 }}
    />
  );
}

Kontekst: aplikacja ma już react-native-video; w researchu go nie instalowano. API v6 przejrzano 2026-10-02; kompilacja i działanie niewykonane. Zamknięte napisy używają source.textTracks i selectedTextTrack, ale boczne VTT na iOS mają ograniczenia m.in. dla HLS i AirPlay. Sama tablica ścieżek nie dowodzi działania.

Jak sprawdzić

  1. Ustal rzeczywistą treść nagrania i obecność ważnego audio w mediach zsynchronizowanych; rozszerzenie pliku ani sam strumień audio tego nie rozstrzygają.
  2. Porównaj pełny tekst z filmem i jego oznaczeniem, jeżeli powołujesz się na wyjątek. Brak danych oznacza brak rozstrzygnięcia.
  3. Odtwórz cały materiał, także bez dźwięku. Porównaj wypowiedzi, mówców i ważne dźwięki; oceń tekst, synchronizację, czytelność i zasłanianie obrazu. Włącz rzeczywistą ścieżkę zamkniętą, gdy jej używasz.
  4. Sprawdź pauzę, wznowienie i przewinięcie. Para błędu i poprawki powinna używać tych samych momentów i danych.
  5. Zachowaj zakres i oryginały. Składnia VTT, test widgetu i pojedynczy kadr nie są pełną oceną.

Weryfikacja i ograniczenia

Sprawdzenie źródłowe 2026-10-02 Wynik i granica
Produkcja medium i kontrola czasów PASS: pięć kwestii, 40 próbek pasa, zgodne formaty i identyczne AAC. Kontrola znanego filmu, bez oceny dowolnej mowy.
Analiza / testy Fluttera PASS / 10 PASS. Pierwsza analiza odbyła się przed zakończeniem tworzenia assetów; po ich utworzeniu przeszła.
Build iOS PASS, Flutter 3.44.9 / Dart 3.12.2, Xcode 27.0.
XCTest i oględziny AI 1 test, 0 błędów: pełny good, seek, pauza/wznowienie, powrót, wariant/reset i tekst wyjątku. AI osobno oglądała kadry; test nie rozpoznawał słów z pikseli.
SwiftUI typecheck PASS; działanie osobnej aplikacji niewykonane.
Odsłuch i przegląd człowieka Niewykonane; poprawność wymowy i zrozumiałość niepotwierdzone.
Fizyczny iPhone, Android, inne odbiorniki Niewykonane.

Wcześniejsze nieudane przewinięcia zachowano w źródle; ich kadry dźwięku i końca nie pokazują potrzebnych napisów i nie służą do końcowego wyniku.

Reguła może wykryć audio, odczytać przedziały VTT i ścieżkę odbiornika. Nie dowodzi znaczenia dźwięku, pełności, wyjątku ani poprawnego renderowania. Napisy otwarte mogą istnieć tylko w pikselach, bez tekstu w drzewie i bez CC. OCR, ASR i AI są przybliżeniem przy muzyce, wielu mówcach, akcentach lub krótkich sygnałach. Test konstrukcji tej demonstracji znał wejściowy tekst; nie był zaślepionym testem produktowego walidatora.

Jak sprawdza Clearship

Katalog metody z 2026-10-08 przewiduje ręczną ocenę treści i synchronizacji. Detektor zbiera kandydatów na podstawie odtwarzaczy, kontrolek CC i tekstu widocznego w klatkach; pomiar tej metody na Androidzie i iOS pozostaje niewykonany. Brak CC, VTT lub napisów w drzewie nie dowodzi braku napisów otwartych. Pełność wymaga obejrzenia i odsłuchu całego materiału oraz sprawdzenia odbiornika. Wyniki tej własnej demonstracji nie potwierdzają pokrycia produktu.

Powiązane kryteria