OKO: Projektowanie dla niewidocznych użytkowników

7 min czytania 1606 słów
OKO: Projektowanie dla niewidocznych użytkowników screenshot

„Najlepszy design dostępności jest niewidoczny — po prostu działa.” — filozofia zespołu AYES

OKO to asystent przejść dla pieszych dla osób niewidomych i słabowidzących, który zdobył Apple Design Award w kategorii Social Impact w 2023 roku. Aplikacja wykorzystuje kamerę iPhone’a i uczenie maszynowe na urządzeniu do wykrywania stanów sygnalizacji dla pieszych (idź, nie idź, odliczanie) i przekazuje wynik za pomocą sprzężenia haptycznego oraz dźwięku przestrzennego. Użytkownicy kierują telefon w stronę sygnalizatora przejścia, a OKO informuje ich, kiedy jest bezpiecznie przejść — bez konieczności patrzenia na ekran.

To projektowanie w swojej najczystszej formie. OKO praktycznie nie ma wizualnego interfejsu w tradycyjnym sensie. Nie ma siatek, kart, palet kolorów ani hierarchii typografii. Zamiast tego wyzwanie projektowe w całości dotyczy komunikacji pozawizualnej: jak przekazać informacje krytyczne dla bezpieczeństwa za pomocą wzorców wibracji i dźwięku w hałaśliwym, nieprzewidywalnym środowisku miejskim. OKO zmusza projektantów do ponownego przemyślenia, co oznacza „interfejs”, gdy ekran nie jest medium.


Dlaczego OKO ma znaczenie

Kluczowe osiągnięcia: - Zdobyło Apple Design Award w kategorii Social Impact (2023), najwyższe wyróżnienie za wpływowy design na platformach Apple - Udowodniło, że najbardziej wpływowa praca projektowa może nie mieć żadnego komponentu wizualnego - Stworzyło język haptyczny komunikujący stan binarny (bezpiecznie/niebezpiecznie) z niuansami (poziom pewności, świadomość odliczania) - Wykazało, że ML na urządzeniu może służyć dostępności w czasie rzeczywistym bez zależności od sieci - Zaadresowało rzeczywistą lukę w dostępności infrastruktury miejskiej: większość skrzyżowań na świecie nie posiada dostępnych sygnałów dla pieszych (APS)


Kluczowe wnioski

  1. Najlepszy interfejs to brak interfejsu — Główna interakcja OKO jest haptyczna i dźwiękowa; ekran istnieje dla konfiguracji i widzących towarzyszów, nie dla głównego użytkownika
  2. Sprzężenie haptyczne to język projektowy — Różne wzorce wibracji komunikują nie tylko stany binarne, ale także poziomy pewności, przejścia i pilność
  3. UX oparty na dźwięku wymaga myślenia przestrzennego — Dźwięk musi przekazywać kierunek i odległość, nie tylko obecność, ponieważ niewidomi użytkownicy poruszają się w środowisku 3D
  4. Infrastruktura miejska ma luki projektowe — Większość skrzyżowań nie ma dostępnych sygnałów; OKO ujawnia, jak bardzo projektowanie przestrzeni publicznej zakłada zdolność widzenia
  5. Projektowanie dla skrajności poprawia wszystko — Ograniczenia wynikające z projektowania dla niewidomych użytkowników generują wzorce interakcji (potwierdzenie haptyczne, sprzężenie dźwiękowe), które ulepszają aplikacje dla wszystkich

Podstawowe zasady projektowe

1. Projektowanie interakcji pozawizualnej

Główna interakcja OKO nie ma komponentu wizualnego. Użytkownik trzyma telefon skierowany w stronę sygnalizatora, a OKO komunikuje się przez wibracje i dźwięk.

Model interakcji:

DZIAŁANIE UŻYTKOWNIKA:   ODPOWIEDŹ SYSTEMU:

Trzymaj telefon          Stałe pulsowanie: „Widzę sygnalizator"
w stronę sygnalizatora   ┌──────────────────────────┐
                         │  ∙ ∙ ∙ ∙ ∙ ∙ ∙ ∙ ∙ ∙   │  Delikatne powtarzające się stuknięcie
                         └──────────────────────────┘

Wykryto sygnał:          Sygnał IDŹ:
IDŹ                      ┌──────────────────────────┐
                         │  ━━━━━━━━━━━━━━━━━━━━━━  │  Silna ciągła
                         │  + wznoszący się ton      │  wibracja + rosnący ton
                         └──────────────────────────┘

Wykryto sygnał:          Sygnał NIE IDŹ:
NIE IDŹ                  ┌──────────────────────────┐
                         │  ∙   ∙   ∙   ∙   ∙   ∙  │  Wolne, rozstawione stuknięcia
                         │  + niski ton              │  + opadający ton
                         └──────────────────────────┘

Wykryto sygnał:          ODLICZANIE (czas się kończy):
ODLICZANIE               ┌──────────────────────────┐
                         │  ∙∙ ∙∙ ∙∙ ∙∙ ∙∙ ∙∙ ∙∙   │  Przyspieszające podwójne stuknięcia
                         │  + ton pilności           │  rosnące tempo
                         └──────────────────────────┘

Decyzje projektowe, które mają znaczenie: - Idź = ciągła silna wibracja. Stan pozytywny musi być najbardziej jednoznaczny. Bezpieczeństwo niewidomego użytkownika zależy od prawidłowej interpretacji „jest bezpiecznie przejść.” Nie ma miejsca na dwuznaczność. - Nie idź = rozstawione delikatne stuknięcia. Stan negatywny jest spokojny, nie alarmujący. Alarmujące wibracje powodują stres; użytkownik po prostu musi wiedzieć „jeszcze nie.” - Odliczanie = przyspieszające tempo. Zapożyczone z dźwiękowego sygnału dostępnych sygnalizatorów dla pieszych, rosnąca prędkość komunikuje „czas się kończy” bez konieczności liczenia. - Brak wykrytego sygnału = cisza. Jeśli OKO nie może z pewnością zidentyfikować stanu sygnalizatora, nie komunikuje niczego zamiast zgadywać. W projektowaniu krytycznym dla bezpieczeństwa cisza (brak informacji) jest bezpieczniejsza niż błędna informacja.


2. Sprzężenie haptyczne jako język projektowy

Wzorce haptyczne OKO nie są przypadkowymi wibracjami. Tworzą spójny język z gramatyką i słownictwem.

// Słownictwo wzorców haptycznych (koncepcyjne)

// IDŹ: Silne, ciągłe, pewne
// Wykorzystuje CHHapticEvent z utrzymaną intensywnością
let walkPattern: [CHHapticEvent] = [
    CHHapticEvent(
        eventType: .hapticContinuous,
        parameters: [
            CHHapticEventParameter(
                parameterID: .hapticIntensity,
                value: 0.9    // Wysoka intensywność = pewność
            ),
            CHHapticEventParameter(
                parameterID: .hapticSharpness,
                value: 0.5    // Średnia ostrość = zdecydowane, ale nie drażniące
            )
        ],
        relativeTime: 0,
        duration: 2.0
    )
]

// NIE IDŹ: Delikatne, rozstawione, cierpliwe
let dontWalkPattern: [CHHapticEvent] = stride(
    from: 0, to: 3.0, by: 0.5
).map { time in
    CHHapticEvent(
        eventType: .hapticTransient,
        parameters: [
            CHHapticEventParameter(
                parameterID: .hapticIntensity,
                value: 0.3    // Niska intensywność = brak pilności
            ),
            CHHapticEventParameter(
                parameterID: .hapticSharpness,
                value: 0.2    // Miękka ostrość = delikatne
            )
        ],
        relativeTime: time
    )
}

// ODLICZANIE: Przyspieszające tempo
func countdownPattern(secondsRemaining: Int) -> [CHHapticEvent] {
    // Interwał maleje w miarę upływu czasu
    // 10 sekund: stuknięcie co 500ms
    //  5 sekund: stuknięcie co 250ms
    //  2 sekundy: stuknięcie co 125ms
    let interval = max(0.125, Double(secondsRemaining) / 20.0)
    // ... generowanie wzorca z malejącymi interwałami
}

Zasady projektowania haptycznego: - Intensywność = pewność. Silna wibracja oznacza, że OKO jest pewne. Słabsza wibracja oznacza niższy poziom pewności. Odpowiada to intuicji ze świata rzeczywistego: mocny uścisk dłoni wyraża pewność. - Tempo = pilność. Szybsze wzorce oznaczają „działaj teraz.” Wolniejsze wzorce oznaczają „czekaj.” Jest to uniwersalne we wszystkich kulturach i nie wymaga nauki. - Cisza = niepewność. Gdy OKO nie może określić stanu sygnalizatora, nie wibruje. To najważniejsza decyzja projektowa: w kontekstach krytycznych dla bezpieczeństwa brak sprzężenia zwrotnego jest bezpieczniejszy niż błędne sprzężenie zwrotne. - Ostrość = wymaganie uwagi. Ostre stuknięcia wymagają uwagi. Miękkie wibracje zapewniają świadomość tła. Sygnał idź wykorzystuje średnią ostrość — wystarczająco zdecydowaną, by ją zauważyć, wystarczająco miękką, by nie powodować zmęczenia.


3. UX oparty na dźwięku ze świadomością przestrzenną

Sygnały dźwiękowe OKO są zaprojektowane dla użytkownika, który porusza się w trójwymiarowym środowisku miejskim, nosząc słuchawki (lub korzystając z głośnika telefonu) wśród hałasu ulicznego.

Wymagania dotyczące projektowania dźwięku: - Musi być słyszalny ponad hałasem ulicznym bez bycia tak głośnym, że maskuje dźwięki otoczenia, których użytkownik potrzebuje (zbliżające się pojazdy, inni piesi) - Musi natychmiast przekazywać zmianę stanu — półsekundowe opóźnienie między zmianą sygnału a sygnałem dźwiękowym może być niebezpieczne - Musi działać zarówno z głośnikiem, jak i słuchawkami (wielu niewidomych użytkowników nosi jedną słuchawkę do aplikacji nawigacyjnych) - Nie może być mylony z innymi powszechnymi dźwiękami aplikacji (dźwięki powiadomień, komunikaty VoiceOver)

Słownictwo dźwiękowe:

IDŹ:
  ┌─ Wznoszący się dwuton ────────────────┐
  │  ♪ niski → wysoki  (interwał durowy)  │
  │  Czas trwania: 400ms                  │
  │  Charakter: Jasny, czysty, afirmatywny│
  └───────────────────────────────────────┘

NIE IDŹ:
  ┌─ Pojedynczy niski ton ────────────────┐
  │  ♪ utrzymany niski  (ton molowy)      │
  │  Czas trwania: 300ms                  │
  │  Charakter: Spokojny, niealarmujący   │
  └───────────────────────────────────────┘

ODLICZANIE:
  ┌─ Rytmiczne klikanie ─────────────────┐
  │  ♪ tik...tik..tik.tik.tiktiktiktik   │
  │  Czas trwania: Odpowiada czasowi      │
  │  Charakter: Przyspieszające, pilne    │
  └───────────────────────────────────────┘

UTRATA SYGNAŁU:
  ┌─ Opadający ton ──────────────────────┐
  │  ♪ wysoki → niski  (łagodne zanikanie)│
  │  Czas trwania: 500ms                  │
  │  Charakter: „Zgubiłem, przekieruj"    │
  └───────────────────────────────────────┘

Kluczowa decyzja projektowa: Sygnał idź to wznoszący się interwał (optymistyczny, afirmatywny), podczas gdy sygnał nie idź to niski utrzymany ton (spokojny, wyczekujący). To nie jest przypadkowe. Wznoszące się interwały są międzykulturowo kojarzone z pozytywnymi wynikami. Niskie utrzymane tony są kojarzone z czekaniem. OKO wykorzystuje te uniwersalne skojarzenia, dzięki czemu użytkownik korzystający po raz pierwszy intuicyjnie rozumie znaczenie bez szkolenia.


Wzorce projektowe warte zapożyczenia

Projektowanie dla zerowej interakcji wizualnej

Podejście OKO do projektowania pozawizualnego generuje wzorce mające zastosowanie daleko poza dostępnością:

Potwierdzenie przez haptykę:

// Każda aplikacja może używać potwierdzenia haptycznego
// Zamiast pokazywania tylko zielonego znacznika:

// Sukces: pojedyncze silne stuknięcie
let successFeedback = UIImpactFeedbackGenerator(style: .heavy)
successFeedback.impactOccurred()

// Błąd: trzy szybkie lekkie stuknięcia
let errorFeedback = UIImpactFeedbackGenerator(style: .light)
for delay in [0, 0.1, 0.2] {
    DispatchQueue.main.asyncAfter(deadline: .now() + delay) {
        errorFeedback.impactOccurred()
    }
}

// Ostrzeżenie: dwa średnie stuknięcia
let warningFeedback = UIImpactFeedbackGenerator(style: .medium)
for delay in [0, 0.15] {
    DispatchQueue.main.asyncAfter(deadline: .now() + delay) {
        warningFeedback.impactOccurred()
    }
}

Szersza lekcja: Większość aplikacji traktuje sprzężenie haptyczne jako dodatek — pojedyncze wibrowanie na każde powiadomienie. OKO pokazuje, że haptyka może nieść znaczenie semantyczne: różne wzorce dla różnych stanów. To sprawia, że aplikacje stają się bardziej użyteczne dla wszystkich, nie tylko dla użytkowników z wadami wzroku. Silne stuknięcie dla „płatność potwierdzona” odczuwa się inaczej niż delikatne stuknięcie dla „wiadomość odebrana”, a użytkownicy uczą się tych wzorców nieświadomie.

Zasady projektowania krytycznego dla bezpieczeństwa

OKO działa w środowisku, gdzie błędy projektowe mogą spowodować obrażenia fizyczne. Jego zasady mają zastosowanie do każdego interfejsu związanego z bezpieczeństwem (medyczny, motoryzacyjny, przemysłowy):

  1. Milcz w niepewności, nie alarmuj. Gdy OKO nie jest pewne, nie daje żadnego sprzężenia zwrotnego zamiast nieprawidłowego. W kontekstach bezpieczeństwa fałszywa pewność jest bardziej niebezpieczna niż przyznana niepewność.

  2. Binarność przed niuansem. Główna komunikacja jest binarna: bezpiecznie lub niebezpiecznie. Niuanse (odliczanie, pewność) są nakładane na wierzch. Pierwsze pytanie użytkownika („Czy mogę przejść?”) otrzymuje jasne tak/nie przed jakimikolwiek dodatkowymi szczegółami.

  3. Redundantne kanały. OKO komunikuje się jednocześnie przez haptykę i dźwięk. Jeśli użytkownik przeoczy jeden kanał (hałaśliwe otoczenie zagłusza dźwięk, telefon w grubych rękawiczkach tłumi haptykę), drugi kanał wciąż przekazuje wiadomość.

  4. Brak wymaganej nauki. Wzorce haptyczne i dźwiękowe wykorzystują uniwersalne skojarzenia (wznoszące się = pozytywne, szybkie = pilne), dzięki czemu użytkownicy korzystający po raz pierwszy rozumieją bez samouczków. Interfejsy krytyczne dla bezpieczeństwa nie mogą zakładać przeszkolenia.

HIERARCHIA PROJEKTOWANIA KRYTYCZNEGO DLA BEZPIECZEŃSTWA:

1. Czy jest bezpiecznie?     Odpowiedź binarna (tak/nie)
2. Jak pewne?                Intensywność sprzężenia zwrotnego
3. Ile czasu?                Tempo sprzężenia zwrotnego
4. Co powinienem zrobić?     Kierunek (przejdź/czekaj)
5. Co się zmieniło?          Sygnały przejścia

Każda warstwa buduje na poprzedniej.
Nigdy nie przechodź do warstwy 3 bez ustalenia warstwy 1.

Werdykt

OKO to najważniejsze studium przypadku w projektowaniu, którego większość projektantów nigdy nie pomyśli zbadać, ponieważ podważa fundamentalne założenie dyscypliny: że projektowanie jest wizualne. Główni użytkownicy OKO nigdy nie zobaczą ikony aplikacji, nigdy nie podziwiają palety kolorów, nigdy nie przeczytają typografii. Całe wyzwanie projektowe jest haptyczne, dźwiękowe i temporalne. A mimo to wymagany rygor projektowy jest co najmniej tak samo wymagający jak w przypadku każdego interfejsu wizualnego, ponieważ stawką jest fizyczne bezpieczeństwo osoby na przejściu dla pieszych.

Lekcja, której uczy OKO, jest taka, że projektowanie dla najbardziej ograniczonych użytkowników generuje najbardziej uniwersalne wnioski. Wzorce potwierdzenia haptycznego, komunikacja stanów dźwiękiem, hierarchia informacji binarność-przed-niuansem, redundantne kanały sprzężenia zwrotnego i obsługa błędów przez milczenie to zasady, które ulepszają każdą aplikację, nie tylko aplikacje dostępności. Gdy projektujesz dla kogoś, kto nie widzi twojego ekranu, odkrywasz, co twój interfejs rzeczywiście komunikuje w porównaniu z tym, co jedynie wyświetla.

Najlepsze do nauki: Jak projektować interakcje pozawizualne z takim samym rygorem jak wizualne oraz jak ograniczenia krytyczne dla bezpieczeństwa generują zasady projektowe (milczenie w niepewności, redundantne kanały, binarność przede wszystkim), które podnoszą jakość całego oprogramowania.


Najczęściej zadawane pytania

Jak OKO wykrywa sygnalizatory przejścia bez połączenia z internetem?

OKO wykorzystuje uczenie maszynowe na urządzeniu poprzez framework Core ML firmy Apple do analizowania obrazu z kamery iPhone’a w czasie rzeczywistym. Model jest wytrenowany do rozpoznawania standardowych stanów sygnalizacji dla pieszych (ręka stop, idąca postać, odliczanie) i działa w całości na Neural Engine urządzenia. Nie jest wymagane połączenie sieciowe, co jest kluczowe dla narzędzia bezpieczeństwa, które musi działać w obszarach ze słabym zasięgiem sieci komórkowej.

Dlaczego OKO używa ciszy, gdy nie może wykryć sygnału?

W projektowaniu krytycznym dla bezpieczeństwa fałszywa pewność jest bardziej niebezpieczna niż przyznana niepewność. Gdyby OKO wibrowało „idź”, gdy w rzeczywistości nie było pewne, użytkownik mógłby wejść na jezdnię. Wybierając ciszę dla niepewnych stanów, OKO jasno komunikuje „nie wiem”, skłaniając użytkownika do zmiany pozycji telefonu lub użycia innych wskazówek (zapytanie pobliskiego pieszego, nasłuchiwanie wzorców ruchu) zamiast ufania nieprawidłowej informacji.

Jak wzorce haptyczne OKO działają dla użytkowników z obniżoną wrażliwością dotykową?

OKO łączy sprzężenie haptyczne z sygnałami dźwiękowymi redundantnie, więc jeśli użytkownik nie czuje wibracji (z powodu neuropatii, grubych rękawic lub etui na telefon), kanał dźwiękowy nadal przekazuje pełną wiadomość. Aplikacja pozwala również użytkownikom niezależnie regulować intensywność haptyki i głośność dźwięku. Dwukanałowe podejście zapewnia, że utrata jednej metody sprzężenia zwrotnego nie zagraża bezpieczeństwu.

Czego aplikacje niedotyczące dostępności mogą się nauczyć z designu OKO?

OKO pokazuje, że sprzężenie haptyczne może nieść znaczenie semantyczne wykraczające poza „coś się stało.” Różne wzorce wibracji dla różnych stanów (sukces, błąd, ostrzeżenie, postęp) tworzą nieświadome słownictwo, które czyni każdą aplikację bardziej użyteczną. Ponadto zasada milczenia w niepewności OKO (brak sprzężenia zwrotnego jest lepszy niż błędne sprzężenie zwrotne), hierarchia informacji binarność-przede-wszystkim oraz redundantne kanały sprzężenia zwrotnego mają zastosowanie w każdym interfejsie, gdzie zaufanie użytkownika ma znaczenie.

Dlaczego OKO zdobyło Apple Design Award w kategorii Inclusivity?

OKO zaadresowało rzeczywistą lukę w infrastrukturze miejskiej: większość skrzyżowań na świecie nie posiada dostępnych sygnałów dla pieszych. Zamiast postulować zmiany infrastrukturalne (wieloletni proces), OKO wykorzystało istniejącą kamerę i sprzęt haptyczny iPhone’a do stworzenia natychmiastowego rozwiązania. Nagroda uhonorowała zarówno osiągnięcie techniczne, jak i filozofię projektową tworzenia technologii służącej użytkownikom, którzy są zazwyczaj niewidoczni dla branży projektowej.


Zasoby

  • App Store: OKO - Crosswalk
  • Deweloper: AYES (studio deweloperskie skoncentrowane na dostępności)
  • Apple Design Awards 2024: Zwycięzca w kategorii Inclusivity
  • Core ML: Framework uczenia maszynowego na urządzeniu firmy Apple, umożliwiający wykrywanie sygnałów w czasie rzeczywistym