Zdarzenia#
Zogniskowanie#
Moduł zdarzeń zogniskowania # (focus event module) jest rozwinięciem modułu zdarzeń interfejsu użytkownika. Definiuje on interfejs FocusEvent oraz powiązane ze zogniskowaniem następujące typy zdarzeń:
Interfejs FocusEvent oraz powiązane z nim typy zdarzeń i kolejność zdarzeń zogniskowania zostały zaprojektowane zgodnie z pojęciami i wytycznymi określonymi w specyfikacji "User Agent Accessibility Guidelines 2.0".
Zogniskowanie dokumentu i kontekst zogniskowania#
Moduł zdarzeń zogniskowania zawiera typy zdarzeń informujące o zmianach w zogniskowaniu dokumentu. Istnieją trzy różne konteksty zogniskowania, które należy brać pod uwagę:
- Kontekst zogniskowania systemu operacyjnego (operating system focus context), który może wskazywać na jedną z wielu aplikacji uruchomionych na komputerze. Jedną z tych aplikacji posiadających zogniskowanie może być przeglądarka internetowa.
- Kiedy przeglądarka internetowa posiada zogniskowanie to użytkownik może przełączyć (np. za pomocą klawisza
TAB
) kontekst zogniskowania aplikacji (application focus context) w obrębie różnych obszarów interfejsu użytkownika przeglądarki (np. pasek adresowy, pole wyszukiwania itp.). Jednym z tych obszarów interfejsu użytkownika może być dokument wyświetlany w konkretnej karcie. - Kiedy dokument we własnej postaci posiada zogniskowanie to kontekst zogniskowania dokumentu (document focus context) może być ustawiany na dowolnym ogniskującym elemencie dokumentu.
Typy zdarzeń definiowane przez specyfikację D3E dotyczą wyłącznie zogniskowania dokumentu i cele zdarzeń wymienione w opisach zdarzeń muszą być wyłącznie częścią dokumentu lub dokumentu w oknie, nigdy częścią przeglądarki lub systemu operacyjnego, nawet w czasie przełączania z jednego kontekstu zogniskowania do innego.
Standardowo dokument zawsze posiada jakiś zogniskowany element (nawet jeśli jest nim dokument we własnej postaci) oraz trwały pierścień zogniskowania. Podczas przełączania między kontekstami zogniskowania aktualny zogniskowany element i pierścień zogniskowania dokumentu zazwyczaj zachowują swój aktualny stan. Dla przykładu, jeśli dokument zawiera trzy ogniskujące elementy, drugi z nich posiada zogniskowania, to w chwili zmiany przez użytkownika zogniskowania systemu operacyjnego na inną aplikację i przywrócenia zogniskowania do przeglądarki, drugi element wciąż pozostanie zogniskowany w dokumencie, i użycie tabulatora przeniesie zogniskowanie na element trzeci. Język gospodarza może określać konkretne elementy, które otrzymują zogniskowanie, warunki zgodnie z którymi element może otrzymać zogniskowanie, zasady zmiany zogniskowania oraz kolejność zgodnie z którą zogniskowanie ulega zmianie. Dla przykładu, w niektórych sytuacjach element może otrzymywać zogniskowanie poprzez przesunięcie wskaźnika nad nim, kiedy inne okoliczności mogą wymagać kliknięcia myszą. Niektóre elementy mogą w ogóle nie otrzymywać zogniskowania, inne z kolei mogą otrzymywać zogniskowanie na określonych zasadach (klikając element), ale nie przez przełączenie tabulatorem. Dokumenty mogą zawierać wiele pierścieni zogniskowania. Inne specyfikacje mogą określać bardziej złożony model zogniskowania, włącznie z przyzwoleniem na jednoczesne zogniskowanie na wielu elementach.
Kolejność zdarzeń zogniskowania#
Zdarzenia zogniskowania występują w ustalonej kolejności względem siebie. Oto typowa sekwencja zdarzeń, kiedy zogniskowanie jest zmieniane między elementami (zakłada się, że żaden element nie posiada początkowego zogniskowania):
Nazwa zdarzenia | Uwagi | |
---|---|---|
Użytkownik zmienia zogniskowanie | ||
1. | focusin | Wysyłane przed otrzymaniem zogniskowania przez pierwszy element docelowy |
2. | focus | Wysyłane po otrzymaniu zogniskowania przez pierwszy element docelowy |
Użytkownik zmienia zogniskowanie | ||
3. | focusout | Wysyłane przed utratą zogniskowania przez pierwszy element docelowy |
4. | focusin | Wysyłane przed otrzymaniem zogniskowania przez drugi element docelowy |
5. | blur | Wysyłane po utracie zogniskowania przez pierwszy element docelowy |
6. | focus | Wysyłane po otrzymaniu zogniskowania przez drugi element docelowy |
Specyfikacja D3E nie definiuje zachowania zdarzeń zogniskowania w przypadku interakcji z metodami takimi jak focus()
czy blur()
. W razie konieczności należy przeanalizować te specyfikacje, gdzie poszczególne metody zostały zdefiniowane.
Odniesienia w HTML5#
W specyfikacji HTML5 wymieniane są jedynie dwa zdarzenia zogniskowania: blur
i focus
. Ich automatyczne odpalenie przez przeglądarki internetowe występuje w wielu różnych sytuacjach, kiedy wymagane jest użycie algorytmu uaktualnienia kroków zogniskowania, i algorytm ten może być wywoływany jako jeden z kroków w innych algorytmach.
Z praktycznego punktu widzenia zmianę zogniskowania i powiązane z nim poszczególne zdarzenia zogniskowania można wywołać poprzez:
- Przejście ze zogniskowanego obiektu do innego ogniskującego obiektu (np. myszą lub klawiaturą).
- Przejście ze zogniskowanego obiektu do innego nieogniskującego obiektu (np. myszą lub klawiaturą).
- Przejście z nieogniskującego obiektu do innego ogniskującego obiektu (np. myszą lub klawiaturą).
- Wywołanie dedykowanych metod, jak np.
focus()
czyblur()
.
Celami zdarzeń zogniskowania może być obiekt Window
lub niektóre elementy (np. kontrolki formularzy).
W ramach uzupełnienia warto zapoznać się z opisem selektorowej pseudoklasy :focus
.