Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(ffe-searchable-dropdown-react): better screen reader support #1093

Merged
merged 1 commit into from
Apr 14, 2021

Conversation

pethel
Copy link
Contributor

@pethel pethel commented Apr 4, 2021

Beskrivelse

Denne konkurerer vell egentligen med #1088.

  • Det viser seg att det finnes 2 versjoner av combobox. wai-aria 1.0 vs wai-aria 1.1. Kort førtalt så har den 1.0 bedre støtte og nya wai-aria 1.1 er ett problem for safari med voiceover kan det se ut som. Slik jag skjønner det er version 1.0 ikke på noen måte deprecated og det er vad feks google bruker i sin søkeboks. Jag har på bakgrund av att downshift (https://www.downshift-js.com/) som vi bruker lager combobox enligt wai-aria 1.1 laget en egen implementasjon tungt inspererad av downshift men med combobox pattern fra wai-aria 1.0.

wai-aria 1.1
image

wai-aria 1.0
image

mer info her: https://www.levelaccess.com/differences-aria-1-0-1-1-changes-rolecombobox/

Testing

Testet selv med Talkback på emulator.
Denne branchen finnes på linken under hvis noen har lust att testa.
https://thirsty-euler-224e8b.netlify.app/styleguidist/index.html#!/SearchableDropdown

@coveralls
Copy link

coveralls commented Apr 4, 2021

Coverage Status

Coverage decreased (-2.7%) to 78.594% when pulling 240f4f8 on develop_searchable-dropdown-take-2 into dbeaaeb on develop.

@MariaOverlierBerg
Copy link
Contributor

Sånn fungerer det på ios nå. Det fungerer myyye bedre enn før, men er fortsatt ikke helt optimalt. Dersom man åpner søkefeltet og swiper, så swiper man inne i keyboardet. For å komme ut av det må man trykke "done/ferdig", men da trigges onBlur, som gjør at hele dropdownen lukkes. Sånn var det før også. Men nå kommer man seg til pil-knappen (det gjorde man ikke før) som åpner og lukker dropdownen, og da kan man navigere seg nedover i lista og velge element. Alt det her ser dere i videoen:
https://user-images.githubusercontent.com/58166609/113687298-7970e700-96c8-11eb-8cd7-6260f17b3ef1.MP4

@pethel pethel force-pushed the develop_searchable-dropdown-take-2 branch from 22d938e to bb19563 Compare April 6, 2021 13:46
@pethel
Copy link
Contributor Author

pethel commented Apr 6, 2021

@MariaOverlierBerg har testet litt og vi klarer ikke og finne noe eksempel som virker bedre på voiceover en vår slik jag skjønner det?

@pethel pethel force-pushed the develop_searchable-dropdown-take-2 branch 2 times, most recently from 3f6025f to 4c853dc Compare April 7, 2021 06:24
@andrea-sb1
Copy link
Contributor

andrea-sb1 commented Apr 7, 2021

Helt supert at du ser på hvordan vi kan gjøre searchable dropdown bedre for skjermlesere, @pethel!

Testet komponenten med VoiceOver på mac (Safari og Chrome) fra https://thirsty-euler-224e8b.netlify.app/styleguidist/index.html#!/SearchableDropdown

Får samme problemet som ble nevnt i #1088, at komponenten ikke fungerer med VoiceOver på Safari, mens den tilsynelatende fungerer bra i Chrome: downshift-js/downshift#1181

Opplever det samme som beskrives i issuet:
«When navigating to the combobox with VoiceOver, it reads "You are currently on a pop-up combo box, inside web content. Type text or, to display a list of choices, press Control-Option-Space.". The issue is that neither typing or ctrl-opt-space do anything – text never appears in the input field and the list of options never appears. This prevents VoiceOver users from interacting with the combobox at all.»

Når jeg tester Google sin søkeboks med samme setup (VoiceOver + Safari) fungerer det derimot. Det går både an å skrive tekst i feltet og ekspandere listen ved å klikke på Kontroll-Tilvalg-Mellomrom, som beskrevet i skjermleser-instruksjonen som leses opp. Tror det kan være en idé å se nærmere på hvordan Google har løst det

Ser at en person fjernet role="combobox" som en workaround i downshift-js/downshift#1181. Lurer på om Google har gjort det samme, eller om de har de løst det på en annen måte

@pethel
Copy link
Contributor Author

pethel commented Apr 7, 2021

Helt supert at du ser på hvordan vi kan gjøre searchable dropdown bedre for skjermlesere, @pethel!

Testet komponenten med VoiceOver på mac (Safari og Chrome) fra https://thirsty-euler-224e8b.netlify.app/styleguidist/index.html#!/SearchableDropdown

Får samme problemet som ble nevnt i #1088, at komponenten ikke fungerer med VoiceOver på Safari, mens den tilsynelatende fungerer bra i Chrome: downshift-js/downshift#1181

Opplever det samme som beskrives i issuet:
«When navigating to the combobox with VoiceOver, it reads "You are currently on a pop-up combo box, inside web content. Type text or, to display a list of choices, press Control-Option-Space.". The issue is that neither typing or ctrl-opt-space do anything – text never appears in the input field and the list of options never appears. This prevents VoiceOver users from interacting with the combobox at all.»

Når jeg tester Google sin søkeboks med samme setup (VoiceOver + Safari) fungerer det derimot. Det går både an å skrive tekst i feltet og ekspandere listen ved å klikke på Kontroll-Tilvalg-Mellomrom, som beskrevet i skjermleser-instruksjonen som leses opp. Tror det kan være en idé å se nærmere på hvordan Google har løst det

Ser at en person fjernet role="combobox" som en workaround i downshift-js/downshift#1181. Lurer på om Google har gjort det samme, eller om de har de løst det på en annen måte

Takk før att du testet. Google har ikke fjernet role="combobox" . Dom bruker version 1.0 av aria specen som beskrevet ovan.

@pethel
Copy link
Contributor Author

pethel commented Apr 8, 2021

@andrea-sb1 senaste version:
https://blissful-neumann-e844e3.netlify.app/styleguidist/index.html#!/SearchableDropdown

Fått tilgang til iPhone så jag kan testa litt selv. Denne føler jag funker sån 80%. Problemet er att den stikker av til andra elementer efter att man valgt. Det er rart før inputfeltet har egentligen focus hele tiden.

@pethel pethel force-pushed the develop_searchable-dropdown-take-2 branch from 4c853dc to 9f282f6 Compare April 8, 2021 21:29
onClick={handleInputClick}
onChange={e => {
if (inputProps.onClick) {
inputProps.onClick(e);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Denne (på linje 235 og 236) skal kanskje heller være onChange istedenfor onClick? 😃

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ja selvsagt :)

@torkjels
Copy link
Contributor

torkjels commented Apr 9, 2021

Til info for dere andre reviewers:

@MariaOverlierBerg, @pethel og jeg testet i går gjennom en hel haug med combobox-komponenter fra internettet, og vi ser at samtlige ikke funker med VoiceOver (og en del er dårlige med Talkback):

Vår "konklusjon" er at vi ikke kommer til å finne en perfekt/bug-fri løsning ettersom skjermlesere rett og slett ikke støtter det godt nok. Dette er en type komponent som kan være veldig nyttig for brukere når man skal finne fram til en ting i en liste over mange alternativer. For eksempel hvis man skal finne fram til et fond eller en av mange mottakere i mottakerlista. Da er det nyttig å kunne søke/filtrere, så en vanlig native <select> er ikke like nyttig som en combobox. Det @pethel har implementert her er en forbedring i forhold til hvordan det oppførte seg tidligere, så kanskje vi skal gå ut med dette og forbedre det ytterligere (hvis det i det hele tatt er mulig 😅) når/hvis vi får tilbakemelding fra brukerne?

PS:
Man kunne også tenke seg at vi bare kunne kopiert Google sin løsning, men de har dessverre en annen use case enn oss. Hos dem blir hele nettsiden refreshet når de velger noe fra dropdownen, som gjør at det hele oppfører seg svært annerledes fra hvordan det skal være hos oss. Vi må på en eller annen måte få både fokus og skjermleser til å havne på riktig sted (altså i input-feltet) etter man har valgt noe fra dropdownen, men det Google har sånn sett et enklere use case enn oss siden de refresher hele siden.

antidecaf
antidecaf previously approved these changes Apr 9, 2021
@pethel pethel merged commit 68414d0 into develop Apr 14, 2021
@pethel pethel deleted the develop_searchable-dropdown-take-2 branch April 14, 2021 10:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants