− Nothing i s g o i n g on .
You l i a r !
Are you ?
V i o l e t , p l e a s e !
− I am not your babe ! p>
You s t u p i d cow ,
l o o k what you gone and done now , ay .
Vi , p l e a s e .
− Leave me a l o n e !
− We need t o t a l k .
− Jason , a r e you d e a f ? !
What ’ s g o i n g on ?
Get out t h e r e and t r y t o s a l v a g e t h i s !
div> t t>
Hoofdstuk 4
Onderzoek In dit hoofdstuk wordt onderzocht hoe webpagina’s, met in het bijzonder ARIA-code, door screen readers worden gelezen (in dit geval NVDA). Als voorbeeld wordt een eenvoudig webformulier gebouwd, uitgerust met ARIA validatie. Belangrijk om te vermelden is dat in dit onderzoek gebruik gemaakt werd van een Mac computer gebruikt, waarop Windows via VMware Fusion wordt gevirtualiseerd. Niet alle toetsencombinaties waren daardoor mogelijk. Het is dus wenselijker om NVDA te testen op een echte Windows PC.
72
HOOFDSTUK 4. ONDERZOEK
4.1
73
NVDA
Voor webontwikkelaars is NVDA wellicht de meest ‘toegankelijke’ screen reader om mee van start te gaan. Het programma is compact, gratis en eenvoudig in te stellen. Na de installatie van NVDA, waarvan op het ogenblik van dit schrijven versie 0.6p3.2 de meest stabiele is, dienen een aantal opties te worden aangepast. Dit kan via het snelmenu van het icoontje in de systeembalk. Vergeet de instellingen achteraf niet op te slaan. ◦ Bij Preferences > Synthesizer kiest men best voor display. Dit zal ervoor zorgen dat de berichten van NVDA niet worden uitgesproken maar worden weergegeven in een venster, wat voor een ontwikkelaar zonder auditieve beperkingen minder storend overkomt. Het kan uiteraard geen kwaad de andere opties en soorten stemmen uit te proberen. ◦ Bij Preferences > Mouse settings moet ‘play audio coordinates when mouse moves’ afgevinkt worden, zoniet hoort men een biepsignaal dat varieert in hoogte afhankelijk van de verticale positie van de muis. ◦ In Preferences > Keyboard settings tenslotte dient men ‘Use CapsLock as an NVDA modifier key’ aan te vinken. Meer hierover later.
4.1.1
De NVDA-toets op Mac
Zoals bij de meeste screen readers reserveert NVDA een speciale toets voor toetsencombinaties eigen aan het programma. Dit heet de NVDA-toets, en wordt in de meeste handleidingen kortweg NVDA genoemd (bijvoorbeeld: NVDA + N roept het snelmenu op). De NVDA-toets is standaard gekoppeld aan de INS-toets. In dit geval wordt Windows gedraaid in VMware voor Mac en komt de INS-toets overeen met de FN-toets (Macintosh klavier) die VMware niet doorspeelt aan Windows. Omdat bij het instellen van de screen reader gekozen is om ook de CapsLock-toets als NVDAtoets te gebruiken, zou men veronderstellen dat het probleem is opgelost. Helaas, de CapsLocktoets wordt door VMware wel doorgegeven aan Windows maar NVDA reageert er niet op en de toets behoudt zijn gewone functie. Gelukkig is er het gratis programma SharpKeys1 dat toelaat functies achter toetsen te veranderen. Door een niet gebruikte toets zoals F16 te koppelen aan ‘Special Caps Lock’ is het probleem opgelost. Drukt men op F16 + N, dan krijgt men mits een foutgeluidje van Mac uiteindelijk het snelmenu van NVDA te zien. Het enige, vrij storende nadeel is wel dat de functie van CapsLock zelf nog steeds uitgevoerd wordt. 1
http://www.codeplex.com/sharpkeys
HOOFDSTUK 4. ONDERZOEK
4.1.2
74
Hoe NVDA een webpagina ‘leest’
NVDA ondersteunt voorlopig enkel FireFox. De nieuwste versies zouden ook basisfuncties voorzien in Internet Explorer 8. Wanneer Google wordt geladen, zegt de screen reader (of toont het Display-venster) het volgende:
busy blank browse mode Google Google zoeken dit blank focus mode
In regel 1 duidt NVDA aan dat de pagina aan het laden is. Wanneer dit klaar is gaat het in browse mode, wat betekent dat een gebruiker door de pagina kan beginnen bladeren. Het tegenovergestelde van browse mode is focus mode. Hierin staat de NVDA cursor op een interactief element dat de focus heeft gekregen, en gelden er andere toetsencombinaties (meer hierover in de bijlagen op pagina 86). Vervolgens spreekt de screen reader de titel van de site uit (Google) en gaat het naar het eerste interactief element dat de focus krijgt (‘Google zoeken’ is het title-attribuut van het invoerveld). Meteen wordt duidelijk hoe belangrijk juiste benamingen van HTML-elementen zijn, en dat invoervelden die niet geassocieerd zijn aan een label wel een title-attribuut moeten meekrijgen (zie hoofdstuk 2.1.4). Vervolgens is het aan de gebruiker om met toetsencombinaties de pagina te doorzoeken. Deze zijn samengevat in de bijlagen op pagina 86). Ook hier zijn wat problemen mee indien men Windows gevirtualiseerd heeft op Mac. Via de cijfertoetsen 1 tot 6 in browse mode kan gesprongen worden naar een volgende heading (h1, h2, .. h6), maar de omgekeerde weg met Shift is niet mogelijk omdat de cijfertoetsen van het klavier in VMware gemapt voor andere functies dienen. NumLock aan- of uitzetten biedt tevens geen oplossing.
4.1.3
NVDA en ARIA
Voor deze test zijn 2 HTML-formulieren aangemaakt: http://artevelde.screenager.be/eindwerk/aria/formWithAria.html en http://artevelde.screenager.be/eindwerk/aria/formWithoutAria.html
Het eerste formulier is uitgerust met ARIA-code voor de validatie. Het tweede formulier dient om te bewijzen dat NVDA wel degelijk rekening houdt met ARIA. Figuur 36 toont de broncode van het eerste formulier. Bovenaan staan JavaScript-functies die gebruikt worden voor de validatie van de velden.
HOOFDSTUK 4. ONDERZOEK Voorbeeldcode 36 Formulier met ARIA-code in HTML 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
< !DOCTYPE html>
Contact form t i t l e> <s c r i p t type=’ text / j a v a s c r i p t ’> f u n c t i o n removeOldAlert ( ) { var o l d A l e r t = document . getElementById ( ’ a l e r t ’ ) ; i f ( oldAlert ) document . body . removeChild ( o l d A l e r t ) ; } f u n c t i o n a d d A l e r t ( aMsg ) { removeOldAlert ( ) ; var newAlert = document . c r e a t e E l e m e n t ( ’ div ’ ) ; newAlert . s e t A t t r i b u t e ( ’ r o l e ’ , ’ a l e r t ’ ) ; newAlert . s e t A t t r i b u t e ( ’ id ’ , ’ a l e r t ’ ) ; var msg = document . createTextNode ( aMsg ) ; newAlert . appendChild ( msg ) ; document . body . appendChild ( newAlert ) ; } f u n c t i o n c h e c k V a l i d i t y ( aID , aSearchTerm , aMsg ) { var elem = document . getElementById ( aID ) ; var i n v a l i d = ( elem . v a l u e . indexOf ( aSearchTerm ) < 0 ) ; i f ( invalid ) { elem . s e t A t t r i b u t e ( ’ a r i a −i n v a l i d ’ , ’ t r u e ’ ) ; a d d A l e r t ( aMsg ) ; } else { elem . s e t A t t r i b u t e ( ’ a r i a −i n v a l i d ’ , ’ f a l s e ’ ) ; removeOldAlert ( ) ; } }
75
HOOFDSTUK 4. ONDERZOEK
76
De output Hieronder staat wat NVDA vertelt aan de gebruiker wanneer het formulier met ARIA-code wordt geladen.
Contact form document Form Please enter your contact details Your name (required) edit required has autocomplete E-Mail address (required) edit has auto complete Please enter your message (required) edit multi line required button Send message button Reset form
Elk woord heeft z’n betekenis. Een overzicht van elke regel: 1. De titel van de pagina 2. De gebruiker komt een formulier tegen 3. Dit komt overeen met de legende van de eerste fieldset. Wanneer er gefocust wordt op een ander element uit een andere fieldset, deelt NVDA altijd eerst de legend mee. Dit principe komt aan bod in hoofdstuk 2.1.4. 4. ‘Your name (required)’ is het label dat bij het eerste invoerveld hoort. ‘Edit’ betekent dat het wijzigbaar is (een veld kan ook op disabled staan). De woorden ‘has auto complete’ wijzen de gebruiker erop dat het veld automatisch hints kan geven. Dit kan worden uitgezet met het attribuut autocomplete=’off’. 5. Idem voor deze regel 6. Idem voor deze regel. Bijkomende woorden zijn ’multi line’ en ’required’. Multi line duidt aan dat het om een veld met meerdere lijnen gaat (een textfield) en required komt van de ARIA-property aria-required=’true’ (NVDA ondersteunt dus ARIA !). 7. Er is een knop om te verzenden 8. en een knop om het formulier te resetten. De validatie Dat NVDA rekening houdt met de property required van NVDA en dat dit het meedeelt aan de gebruiker is allemaal goed en wel, maar veel is die laatste er niet mee. Het geheel is krachtiger gemaakt met client-side JavaScript-validatie. Met onBlur (zie hoofdstuk 2.5) wordt de functie ‘checkValidity’ opgeroepen wanneer het invoerveld van Naam of Email de focus verliest.
HOOFDSTUK 4. ONDERZOEK
77
Die functie roept op zijn beurt de functie ‘addAlert’ op wanneer niet aan de voorwaarde is voldaan (bij het email-adres is dat het ontbreken van een apenstaartje). Deze slimme functie maakt een nieuw div-element aan met een ARIA-role ‘alert’ (zie hoofdstuk 2.3.2), waarin een gepaste boodschap wordt geschreven. Het input-element zelf krijgt ARIA-state ‘aria-invalid’ mee met waarde false, waarmee wordt aangeduid dat het invoerveld niet geldig is. Met de plugin FireBug voor FireFox ziet men de code die de JavaScript-functie heeft toegevoegd aan onderaan het formulier: Invalid e-mail address
Deze boodschap is zowel zichtbaar voor de browser-gebruiker als NVDA. De screen reader zal dankzij de alert-status van het ARIA role-attribuut meteen de gebruiker waarschuwen met de volgende woorden:
E-Mail address required edit invalid entry required alert invalid e-mail address
De eerste regel is de herhaling van het betreffende invulveld. De tweede regel duidt aan dat het veld foutief is. De derde regel is de respectievelijke foutboodschap. Wanneer de gebruiker nu een correct e-mailadres opgeeft, en met tab of de muis naar een volgend element navigeert waardoor het foutieve veld de focus verliest, zal de functie ‘removeOldAlert’ worden uitgevoerd die de foutboodschap terug weghaalt.
Hoofdstuk 5
Conclusie Algemeen kan men stellen dat de ontwikkeling van een website met een goede accessibility behoorlijk complex is. Er bestaan bij de gebruikers veel uiteenlopende beperkingen, al dan niet gecombineerd. Hoewel met de nieuwe RIA-technieken en de verschillende multimediavormen een gebruiksvriendelijke website kan gebouwd worden, blijft die vaak moeilijk toegankelijk voor assistive technologies zoals screen readers. De nieuwe standaarden HTML 5, WAI-ARIA en SMIL proberen hieraan tegemoet te komen. Men kan zich afvragen of het verstandig is technologie¨en te gebruiken die nog nergens ten volle ondersteund worden of zich zelfs nog in ‘draft-modus’ bevinden. Mijn mening is om daar toch reeds mee op te starten omdat dit de vooruitgang en de aanvaarding van de standaarden bevordert. Uiteraard werden niet alle aspecten van web accessibility behandeld in dit eindwerk en lag de focus vooral op oplossingen voor RIA-applicaties. Er kan ook nog worden ingegaan op Greasemonkey en User Stylesheets, mashups van API’s van content providers met communicatie via SMIL, diepgaander onderzoek op de accessibility van JavaScript frameworks, en nog veel meer. Het is echter noodzakelijk eerst de basis te kennen. Leren werken met een screen reader was voor mij bijzonder verwarrend en ik kan mij voorstellen dat dit voor vele webontwikkelaars reeds een onderzoek op zich betekent. Ik raad trouwens aan genoeg tijd uit te trekken om de gebruikservaring van een persoon met fysieke of psychische problemen voldoende te kunnen inschatten. Tenslotte wil ik opmerken dat web accessibility te weinig wordt behandeld in de opleidingen Toegepaste Informatica en Multimedia. Voor ik begon aan dit eindwerk wist ik dan ook bitter weinig over de problematiek. Ik kende zelfs het bestaan van een screen reader niet. Nochtans is in de 21ste eeuw de aandacht hiervoor essentieel, onder meer door de toenemende vergrijzing, de langere levensverwachting en de sterke toename van het aantal slechtzienden als gevolg van ongezonde eetpatronen. Met het bestuderen van de problematiek en het ophelderen van de onduidelijkheden heb ik zelf alvast veel bijgeleerd.
78
HOOFDSTUK 5. CONCLUSIE
5.1
Meer informatie
◦ WebAIM Articles http://webaim.org/articles/ ◦ WebAIM Screen Reader Survey Results 2009 http://webaim.org/projects/screenreadersurvey/ ◦ Web Accessibility Initiative (WAI) http://www.w3.org/WAI/ ◦ Section 508 http://www.section508.gov/ ◦ Toegankelijk Web Vlaamse Overheid http://www2.vlaanderen.be/toegankelijkweb/ ◦ AnySurfer http://anysurfer.be/ ◦ Lijst met dragers van het AnySurfer-label http://anysurfer.be/nl/service/labeldragers/ ◦ Toegankelijkheidsmonitor 2009 http://www.toegankelijkheidsmonitor.be/ ◦ BBC Accessibility Guidelines http://www.bbc.co.uk/accessibility/ ◦ Adobe Accessibility Guidelines http://www.adobe.com/accessibility/ ◦ Apple Accessibility Guidelines http://developer.apple.com/ue/accessibility/index.html ◦ Opera Developer Community Articles http://dev.opera.com/articles/ ◦ A List Apart http://www.alistapart.com/ ◦ Toegankelijke dropdownmenu’s maken http://www.udm4.com/ ◦ Toegankelijke CAPCHA maken http://blog.anysurfer.be/2008/02/29/captcha-the-sequel/ ◦ Toegankelijke slidebar maken http://www.filamentgroup.com/lab/developing an accessible slider/ ◦ Weblog over accessibility http://www.456bereastreet.com/
79
Bibliografie [1] So you want to create accessible online video, huh?). http://www.anysurfer.be/nl/richtlijnen/inhoud/video-en-geluid/ bedieningsknoppen-zijn-toegankelijk/ . [2] Accesskeys and Reserved Keystroke Combinations. http://www.wats.ca/show.php?contentid=43 . [3] Apple VoiceOver. http://www.apple.com/accessibility/voiceover/ . [4] Assistive technology compatibility Firefox 3.5. http://www.opera.com/docs/changelogs/mac/950/index.dml . [5] Cognitive Disabilities. http://www.webaim.org/articles/cognitive/ . [6] Creating Accessible JavaScript. http://www.webaim.org/techniques/javascript . [7] Defining keyboard shortcuts. http://diveintoaccessibility.org/day 15 defining keyboard shortcuts.html . [8] Invisible Content Just for Screen Reader Users. http://www.webaim.org/techniques/css/invisiblecontent/ . [9] JAWS and Internet Explorer. http://vip.chowo.co.uk/wp-content/uploads/jaws/ . [10] Making Video Accesssible. http://www.longtailvideo.com/support/tutorials/Making-Video-Accessible . [11] Oracle welcomes new EU policy on E-inclusion. http://www.oracle.com/corporate/europeanunion/articles/new-e-inclusion-policy.html . [12] Orca Accessible Applications. http://live.gnome.org/Orca/AccessibleApps . [13] People with Disabilities on the Web. http://www.webaim.org/intro/#people . [14] Using Accesskeys is Easy. http://www.sitepoint.com/article/accesskeys/ . 80
BIBLIOGRAFIE
81
[15] Verschillende handicaps en de invloed op de toegankelijkheid van internet. http://www.accessibility.nl/internet/achtergronden/handicaps . [16] Windows Eyes specifications. http://www.gwmicro.com/Window-Eyes/ . [17] Windows Internet Explorer 8 Release Candidate 1 release notes. http://support.microsoft.com/kb/949787 . [18] Specifications for the Digital Talking Book (DAISY 3). http://www.niso.org/workrooms/daisy/Z39-86-2005.html , April 2005. [19] A call for video on the web - Opera video release on Labs. http://dev.opera.com/articles/view/a-call-for-video-on-the-web-opera-vid/ , 2007.
November
[20] Belgische anti-discriminatie wetgeving. http://www.romereborn.virginia.edu/rome 2.0.php , 2007. [21] HTML5 Media Support in Webkit. http://webkit.org/blog/140/html5-media-support/ , November 2007. [22] About the Safari 3.1 Update. http://support.apple.com/kb/TA25197/ , March 2008. [23] Evidence-based analysis for a possible co-ordinated European approach to web accessibility. http://ec.europa.eu/information society/activities/einclusion/docs/access/comm 2008/ coordinated approach.doc , November 2008. [24] Guideline 2.1 Keyboard Accessible: Make all functionality available from a keyboard. http://www.w3.org/TR/WCAG20/#keyboard-operation , December 2008. [25] HTML 5 support in Opera 10x. http://www.opera.com/docs/specs/presto22/#html , December 2008. [26] AccessibilityProperties in ActionScript 3.0. http://livedocs.adobe.com/flex/3/langref/flash/accessibility/AccessibilityProperties.html , August 2009. [27] Assistive technology compatibility Firefox 3.5. http://support.mozilla.com/en-US/kb/Assistive+technology+compatibility , August 2009. [28] Aural CSS: Support for CSS 2 Aural Style Sheets / CSS 3 Speech Module. http://lab.dotjay.co.uk/notes/css/aural-speech/ , July 2009. [29] DAISY Digital Talking Book. http://wapedia.mobi/en/DAISY Digital Talking Book , June 2009. [30] Frequently Asked Questions (FAQ) about the future of XHTML. http://www.w3.org/2009/06/xhtml-faq.html , July 2009. [31] Google Chrome gets HTML video support. http://news.cnet.com/8301-17939 109-10250958-2.html , May 2009.
BIBLIOGRAFIE
82
[32] i2010 - List of actions . http://ec.europa.eu/information society/eeurope/i2010/docs/annual report/2009/ sec 2009 1060.pdf , 2009. [33] i2010 - List of actions . http://ec.europa.eu/information society/eeurope/i2010/docs/annual report/2009/ sec 2009 1060.pdf , 2009. [34] Set of ARIA Test Cases. http://wiki.codetalks.org/wiki/index.php/Set of ARIA Test Cases , August 2009. [35] Survey of Preferences of Screen Readers Users. http://webaim.org/projects/screenreadersurvey/ , June 2009. [36] Using audio and video in FireFox. https://developer.mozilla.org/En/Using audio and video in FireFox , July 2009. [37] Yahoo! Supports the NVDA Project. http://www.nvaccess.org/blog/YahooSupportsNVDA , June 2009. [38] Accessibility.nl. Webtoegankelijkheid en wetgeving. http://www.accessibility.nl/internet/achtergronden/wetgeving , 2002. [39] Jonny Axelsson. XHTML+Voice By Example. http://dev.opera.com/articles/view/xhtml-voice-by-example/ , January 2007. [40] Jonny Axelsson. Can HTML5 make accessibility usable? http://my.opera.com/jax/blog/can-html5-make-accessibility-usable , July 2009. [41] Peter J. Danielsen. The Promise of a Voice-Enabled Web. http://www.bell-labs.com/user/pdanielsen/r8104.pdf , August 2000. [42] Willem de Moor. W3C dumpt xhtml 2 om zich meer op html 5 te kunnen richten. http://tweakers.net/nieuws/61077/w3c-dumpt-xhtml-2-om-zich-meer-op-html-5-te-kunnen-richten. html , July 2009. [43] Europa. Internet for all: EU ministers commit to an inclusive and barrier-free information society. http://europa.eu/rapid/pressReleasesAction.do?reference=IP/06/769 , June 2006. [44] Steve Faulkner. How Can I Validate (X)HTML + ARIA? http://www.paciellogroup.com/blog/?p=107 , January 2009. [45] Christian Heilman. So you want to create accessible online video, huh? http://www.wait-till-i.com/2008/07/21/so-you-want-to-create-accessible-online-video-huh/ , July 2008. [46] Rodger Hudson. Flash and Accessibility. http://www.usability.com.au/resources/flash.cfm , November 2003. [47] Roger Hudson. Accessible Data Tables. http://www.usability.com.au/resources/tables.cfm , June 2005.
BIBLIOGRAFIE
83
[48] Roger Johansson. Hiding with CSS: Problems and solutions. http://www.456bereastreet.com/archive/200905/hiding with css problems and solutions/ , May 2009. [49] Martin Kliehm. Accessible Web 2.0 Applications with WAI-ARIA. http://www.alistapart.com/articles/waiaria , April 2007. [50] Bruce Lawson. HTML 5 + XML = XHTML 5. http://html5doctor.com/html-5-xml-xhtml-5/ , July 2009. [51] Dennis Leas, Emilia Persoon, Neil Soiffer, and Michale Zacherle. DAISY Digital Talking Book. http://digbib.ubka.uni-karlsruhe.de/volltexte/documents/709866 , October 2008. [52] Pieterjan Van Leemputten. Wetsvoorstel verbetert gehandicaptentoegang overheidswebsites. http://www.itprofessional.be/news.cfm?id=95548&mxp=224 , December 2008. [53] Gez Lemon. Introduction to WAI ARIA. http://dev.opera.com/articles/view/introduction-to-wai-aria/ , August 2008. [54] Gez Lemon. Accessible drag and drop using WAI-ARIA. http://dev.opera.com/articles/view/accessible-drag-and-drop/ , July 2009. [55] Ann McMeekin. CSS for Accessibility. http://24ways.org/2007/css-for-accessibility , December 2007. [56] David Meyer. HTML 5 drops open source video codec. http://www.zdnetasia.com/news/software/0,39044164,62055739,00.htm , July 2006. [57] David Meyer. Opera: Web standards could eclipse Flash. http://www.zdnetasia.com/news/software/0,39044164,62054317,00.htm?scid=rss z nw May 2009.
,
[58] Remy Sharp. 2022, or when will HTML 5 be ready? http://html5doctor.com/2022-or-when-will-html-5-be-ready/ , July 2009. [59] Jim Thatcher, Michael R. Burks, Christian Heilmann, Andrew Kirkpatrick, Patrick H. Lauke, Bruce Lawson, Shawn Lawton Henry, Bob Regan, Richard Rutter, Mark Urban, and Cynthia Waddell. Web Accessibility: Web Standards and Regulatory Compliance. Number 978-1590596388. friends of ED, 2006. [60] Eric Velleman. Eisen voor video en audio (Webrichtlijnen, W3C, drempelvrij). http://www.accessibility.nl/internet/artikelen/audiovideo .
Lijst van figuren 1.1 1.2 1.3 1.4
De AnySurfer labels die op een website De Invert-modus van Mac OS X . . . Google in Lynx. . . . . . . . . . . . . Google in Home Page Reader . . . . .
2.1
Datum kiezen met HTML 5
3.1
worden geplaatst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . .
13 21 24 25
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
De wijze waarop een DTB wordt gelezen . . . . . . . . . . . . . . . . . . . . . . .
65
84
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
Bijlagen Bijlagen met betrekking tot dit eindwerk: ◦ Pagina 86 geeft een overzicht van de belangrijkste sneltoetsen in NVDA. ◦ Pagina 88 geeft een overzicht van de belangrijkste sneltoetsen in Fire Vox. ◦ Pagina 89 geeft een overzicht van de belangrijkste sneltoetsen in JAWS. ◦ Pagina 86 geeft een overzicht van de belangrijkste sneltoetsen in Home Page Reader. ◦ Pagina 91 geeft een overzicht van de belangrijkste sneltoetsen in VoiceOver. ◦ Pagina 92 toont welke browsers in screen readers momenteel worden ondersteund. ◦ Pagina 94 beschrijft de richtlijnen om een drag-and-drop handeling toegankelijk te maken. ◦ Pagina 95 bevat het voorstel voor het eindwerkonderwerp. ◦ Pagina 97 bevat het logboek.
85
BIJLAGEN
.1 .1.1
86
NVDA Belangrijkse sneltoetsen voor webontwikkelaars
Numpad , insert NVDA-toets + N NVDA-toets + S NVDA-toets + P NVDA-toets + F1 Numpad Plus Ctrl Ctrl + Page Up Ctrl + Page Down Ctrl + Home Ctrl + End Tab Shift + Tab Numpad 7 Numpad 8 Numpad 9 Shift + Numpad 1 Shift + Numpad 3 Shift + Numpad 9 Shift + Numpad 7 Numpad 4 Numpad 5 Numpad 6 Numpad 1 Numpad 2 Numpad 3
Sneltoetsen in NVDA NVDA-toets Activeer menu Spreekmodus veranderen Punctuatie aan/uit Technische info over het huidige venster Zeg alle tekst Voorlezen stoppen Vorig tabvenster Volgend tabvenster Naar bovenaan pagina Naar onderaan pagina Volgende element Vorige element Vorige regel Huidige regel Volgende regel Start van een regel Einde van een regel Onderste regel Bovenste regel Vorig woord Huidige woord Volgende woord Vorig karakter Huidige karakter Volgende karakter
BIJLAGEN
87
In browser-modus De browser-modus wordt geactiveerd door NVDA + Spatie. Drukt men nogmaals deze toetsencombinatie in, dan gaat NVDA weer in focus-mode. Normaal gezien gebeurt deze omschakeling automatisch, maar in het geval dat bijvoorbeeld de cursor in een tekstveld knippert, zal de H-toets niet een overzicht geven van de headings maar effectief ‘H’ invullen in het veld. In dat geval moet men dus eerst de browser-modus gaan activeren. Volgende tabel geeft een overzicht van welke toetsen men kan gebruiken om door HTMLelementen te navigeren. NVDA overloopt van boven naar onder, indien er niets meer volgt wordt dit gemeld (bijvoorbeeld “No next heading”). Met de shift + de toetsencombinatie leest NVDA van onder naar boven. Sneltoetsen in H 1 .. 6 G M L I T K U V B X R C Ctrl + Boven/Onder F
NDVA browser-modus Volgend heading-element Ga naar heading 1, 2.. of 6 Volgende afbeelding Volgend frame Volgende lijst Volgend lijst item Volgende tabel Volgende hyperlink Volgende onbezochte hyperlink Volgende bezochte hyperlink Volgende button Volgende checkbox Volgende radiobutton Volgende combobox paragraaf Formulierveld
Opgelet! De INS-toets werkt niet wanneer Windows draait in virtualisatiesoftware zoals VMware Fusion (mac).
BIJLAGEN
.2
88
Fire Vox
.2.1
Download locatie
FireFox: http://www.mozilla.com/firefox Fire Vox: http://firevox.clcworld.net
.2.2
Installatie
Tenzij FireFox niet de standaard browser is, is het aangeraden de plug-in te installeren op een aparte versie van FireFox zodat het niet interfereert met andere plug-ins. Hiervoor zijn twee mogelijkheden: ◦ Maak gebruik van een programma dat het mogelijk maakt meerdere versies van FireFox tegelijk te openen. Op Mac is dit het gratis MultiFireFox1 , waarop vervolgens Fire Vox wordt ge¨ınstalleerd. ◦ Maak gebruik van Portable FireFox voor Mac2 of Windows3 en installeer er vervolgens de plug-in op.
.2.3
Belangrijkse sneltoetsen voor webontwikkelaars
Fire Vox zal in tegenstelling tot andere screen readers niet automatisch de inhoud van een pagina voorlezen. Gebruik volgende sneltoetsen: Sneltoetsen in Fire Vox Ctrl + Shift + F Lees het eerstvolgende element Ctrl + Shift + D Lees het vorige element Ctrl + Shift + A Overloop heel de pagina
1 2 3
http://davemartorana.com/multifirefox/ http://www.freesmug.org/portableapps/firefox/ http://portableapps.com
BIJLAGEN
.3 .3.1
JAWS Belangrijkse sneltoetsen voor webontwikkelaars
Sneltoetsen in JAWS Ctrl Voorlezen stoppen Insert + F1 Help over het huidige element Tab Naar volgend element gaan Shift + Tab Naar vorig element gaan Enter Op link klikken Ins + F7 Geef lijst van alle links Insert + omlaag Alles voorlezen Insert + links Vorig woord voorlezen Insert + rechts Volgend woord voorlezen Insert + omhoog Huidige regel voorlezen Rechts Volgend karakter voorlezen. Links Vorig karakter voorlezen. Onder Volgende regel voorlezen Boven Vorige regel voorlezen Alt + Home Voorlezen tot positie muis Alt + Page Up Voorlezen vanaf positie muis Insert + rechts Volgend woord voorlezen Insert + omhoog Huidige regel voorlezen Ctrl + Alt + omlaag Tabelcel naar beneden Ctrl + Alt + links Tabelcel naar links Ctrl + Alt + rechts Tabelcel naar rechts Ctrl + Alt + omhoog Tabelcel naar omhoog Ctrl + Alt + Num 5 Huidige cel voorlezen Enter Naar de formulier modus gaan Tab Naar het volgende formulier element gaan Shift + Tab Naar het vorige formulier element gaan Spatie Checkbox selecteren of deselecteren Alt + omlaag Open keuzelijst Ctrl + Shift Meerdere keuzes maken in een lijst Omhoog of omlaag Selecteer radio button Ctrl + Tab Naar de volgende frame gaan Ctrl + Shift + Tab Naar de vorige frame gaan Ins + F9 Geef lijst van alle frames Een completere lijst is te vinden op http://www.webaim.org/resources/shortcuts/jaws .
89
BIJLAGEN
.4 .4.1
IBM Home Page Reader Belangrijkse sneltoetsen voor webontwikkelaars
Sneltoetsen in Home Page Reader Spatie Voorlezen Ctrl Voorlezen stoppen Alt + F1 Waar ben ik? Tab Naar volgend element gaan Shift + Tab Naar vorig element gaan Enter Op link klikken Ctrl + L Geef lijst van alle links Ctrl + Home Naar bovenaan pagina gaan Ctrl + End Naar onderaan pagina gaan Ctrl + Onder Naar volgend blok gaan Ctrl + Boven Naar vorig blok gaan Alt + links Vorige pagina Alt + rechts Volgende pagina Rechts Volgend element Links Vorig element Onder Huidig element Home Begin van huidig element End Einde van huidig element omlaag Tabelcel naar benede links Tabelcel naar links rechts Tabelcel naar rechts omhoog Tabelcel naar omhoog Spatie Huidige cel voorlezen Ctrl + Tab Naar de volgende frame gaan Ctrl + Shift + Tab Naar de vorige frame gaan Ctrl + E Geef lijst van alle frames Een completere lijst is te vinden op http://www.webaim.org/resources/shortcuts/hpr.php .
90
BIJLAGEN
.5 .5.1
91
VoiceOver (Mac) Belangrijkse sneltoetsen
Sneltoetsen in VoiceOver voor webontwikkelaars Cmd + F5 VoiceOver (des)activeren Ctrl + Option VoiceOver-toets (VO) VO + Cmd + F8 VoiceOver tutorial oproepen VO + H Help-functie van huidig onderdeel opvragen VO + Cmd + pijltjes Volume, snelheid en intonatie van stem aanpassen VO + pijltjes VoiceOver cursor verplaatsen VO + Spatie Iets selecteren of activeren VO + Shift + Spatie Meerdere opties tegelijk selecteren VO + Shift + pijltjes VoiceOver cursor verplaatsen in een element VO + Shift + F VoiceOver Zoek-venster VO + Shift + Spatie Muisklik VO + Shift + M Rechtermuisklik (snelmenu weergeven) VO + U Koppelingen van een pagina weergeven Esc Een menu sluiten, taak stoppen of modus verlaten Een visueel overzicht van alle toetsencombinaties is te downloaden op http://images.apple.com/accessibility/voiceover/pdf/VoiceOver Keyboard Color20080912.pdf . Een lijst van toetsencombinaties in Opera is te vinden op http://www.iheni.com/using-opera-10-beta-with-voiceover/
BIJLAGEN
.6
92
Ondersteuning van browsers in screen readers
Onderstaande tabellen geven een overzicht van screen readers die kunnen samenwerken met verschillende types webbrowsers. Deze lijst is niet compleet. [27] [4] [12] [9] [16] [17]
.6.1
FireFox 3.5
Ondersteuning in Windows Dragon Naturally Speaking Vanaf versie 9 Hal Vanaf versie 10 JAWS Vanaf versie 7.1 NVDA Vanaf versie 0.6p1 Windows Eyes Vanaf versie 5.5 ZoomText Vanaf versie 8.12 Fire Vox Ondersteuning Ondersteuning in Mac VoiceOver (Mac OS X) Geen ondersteuning Fire Vox Ondersteuning Ondersteuning in Linux Orca Ondersteuning Gnopernicus Geen ondersteuning LSR Geen ondersteuning Fire Vox Ondersteuning
.6.2
Opera 9.5
Ondersteuning in Windows Windows Eyes Primaire ondersteuning NVDA Primaire ondersteuning JAWS Primaire ondersteuning NDVA Geen ondersteuning Ondersteuning in Mac VoiceOver (Mac OS X) Ondersteuning Ondersteuning in Linux Orca Geen ondersteuning
.6.3
Safari 3
Ondersteuning in Windows NDVA Geen ondersteuning Ondersteuning in Mac VoiceOver (Mac OS X) Ondersteuning
BIJLAGEN
.6.4
Internet Explorer 7
Ondersteuning in Windows JAWS Vanaf versie 7.10 Windows Eyes Ondersteuning Dragon Naturally Speaking Ondersteuning NDVA Geen ondersteuning
.6.5
Internet Explorer 8
Ondersteuning in Windows JAWS Vanaf versie 10 Windows Eyes Vanaf versie 7.0.1 Dragon Naturally Speaking Vanaf versie 10.1 NDVA Geen ondersteuning
93
BIJLAGEN
.7
94
Drag-and-drop
De drag-and-drop-operatie in webapplicaties is een van de belangrijke basishandelingen die geavanceerde Ajax-applicaties vandaag gebruiken. Het verslepen van een element van punt A naar punt B is echter een actie die moeilijk toegankelijk te maken is. Vooral voor mensen met een beperkte motorische controle is een toegankelijke drag-and-dropoperatie welkom. Zij hebben vaak last om de muis op een stabiele manier te verplaatsen of kunnen moeilijk op het doelobject mikken. Handelen via het toetsenbord zou dit veel eenvoudiger maken. Dit is trouwens een vereiste [24] van de richtlijnen van WCAG 2.0 (1.4.1). Met WAI-ARIA (zie 2.3.2) kunnen de sleepbare objecten gemakkelijk ge¨ıdentificeerd worden voor screen readers en andere begeleidende technologie¨en. Wanneer bijvoorbeeld een sleepbaar element wordt gegrepen, moet het zijn ARIA-property aria-grabbed4 op true zetten. Codevoorbeeld 37 toont hoe dit gemakkelijk kan met het JavaScript-framework jQuery (2.6). De ARIA-property aria-dropeffect wordt gehangen aan het element dat de operatie zal uitvoeren (het doelobject). Voorbeeldcode 37 ARIA-properties aanpassen met jQuery t h i s . s e t A t t r i b u t e ( ’ a r i a −grabbed ’ ,
1
’ false ’) ;
Op de website van W3C zijn een aantal goede praktijken uitgelegd om tot een toegankelijk resultaat te komen.5 Meer uitleg is te vinden op de developers blog6 van Opera. Een kort overzicht: 1. Identificeer de sleepbare objecten via de ARIA-property arria-grabbed en markeer ze met de ARIA-roles listitem of treeitem. Zorg dat ze navigeerbaar zijn met het toetsenbord (bijvoorbeeld met tab). Pas eventueel CSS toe zodat de actie duidelijker wordt (zie 2.2.2) of maak een element ‘tab-baar’ met tabindex (zie 2.4.1). 2. De elementen moeten selecteerbaar zijn, liefst via spatie. Wanneer geselecteerd, zet dan aria-grabbed op true. 3. Identificeer het doelobject met aria-dropeffect. De meest gebruikte waarden zijn copy en move. 4. Wanneer de gebruiker het object boven het doelobject heeft hangen, zorg ervoor dat er een toetsenbordcombinatie is om de actie uit te voeren (copy, move,..). Wenselijk is Control + M, waarop een navigeerbare pop-up verschijnt met de mogelijkheden. 5. De gebruiker moet op elk ogenblik de actie kunnen annuleren met Escape. 6. Als de actie gedaan is, zet aria-grabbed en aria-dropeffect terug op de juiste waarde. 7. Zorg voor uitleg om met het toetsenbord te navigeren.
4 5 6
http://www.w3.org/WAI/PF/aria/#aria-grabbed http://www.w3.org/WAI/PF/aria-practices/#dragdrop http://dev.opera.com/articles/view/accessible-drag-and-drop/
BIJLAGEN
.8
95
Voorstel onderwerp eindwerk
Voorstel eindwerkonderwerp 2008-2009 Uiterste indiendatum: maandag 3 november 2008 STUDENT: PEREMANS SVEN
Eindwerkonderwerp Titel: Webusability m.b.t. gebruikers met een handicap Subtitel: Rich Internet Applications toegankelijk maken voor bezoekers met functiebeperkingen (Flash/Flex, Ajax) Motivatie: Door de opkomst van mobiele telefonie en de vergrijzing van de bevolking zijn toegankelijke websites en webapplicaties (zowel online als offline) vandaag meer dan nodig. Willen we iedereen aanspreken met een website dient deze ook toegankelijk te zijn op alle niveaus. Bovendien gaan toegankelijkheid en flexibliteit van een website hand in hand.
Inhoud / uitwerking Structuur: - Overzicht - Gebruiksvriendelijkheid : richtlijnen, Anysurfer, .. - Voorbeeldwebsites - Technologieën van vandaag (voordelen, nadelen) - Screenreaders: welke, v/nadelen, hoe gaan ze om met flash/RIA/.. - Toekomstmogelijkheden (Silverlight ?) - Hoe verbeteren : uitwerking van eigen RIA - Hoe gaan screenreaders ermee om - laten testen door Anysurfer of zelf de simulatie uitvoeren - De ervaring van een blinde gebruiker - Conclusie Mogelijke subtopics: - XML - Webforms hoe javascript/ajax de toegankelijkheid kan verbeteren - zoekbaarheid van flash - microformats - zooming -Onderzoek: - een flash/flex/ajax applicatie ontwikkelen en deze late testen door een blinde gebruiker op gebruiksvriendelijkheid
Externe Promotor Naam: Roel Van Gils Motivatie: Roel Van Gils is coördinator binnen Anysurfer, een erkend Belgisch bedrijf dat labels toekent aan websites die voldoen aan de Anysurfer richtlijnen m.b.t. gebruiksvriendelijkheid en toegankelijkheid
BIJLAGEN
96
Interne Promotor Naam: Motivatie: Ann Audenaert of Dany Dhondt Gedeelte voorzien voor de eindwerkcoördinator DATUM INDIENING: STATUS: OPMERKINGEN / SUGGESTIES:
BIJLAGEN
.9
97
Logboek
LOGBOEK EINDWERK MMP 08-09 Student: Sven Peremans Onderwerp: Web Accessibility m.b.t. gebruikers met een handicap Externe promotor: Roel Van Gils Interne promotor: Olivier Parent datum
actie
24-09-2008
Contacteren Roel van Gils van AnySurfer via mail
26-09-2008
21-10-2008
03-11-2008
03-11-2008
09-01-2009
04-03-2009
16-03-2009
inhoud
Polsen naar mogelijkheid om eindwerk te doen rond webusability Mailtje voor Het onderwerp alternatief werd al eens onderwerp aan behandeld, Roel Van Gils vragen naar specifieker onderwerp Mailtje naar Roel Vragen via mail Van Gils of dhr. Van Gils nog meer specifieke onderwerpen kent
Mailtje naar Roel Voorleggen Van Gils eerste voorstel structuur aan Roel Van Gils Mailtje van Roel Antwoord op Van Gils voorstel structuur, en de vraag om eventueel te focussen op WAIARIA Ondertekening contract bij Roel Van Gils Informeel Tips eindwerk contact via chatsessie met Roel Van Gils Mailtje naar Roel Voorleggen Van Gils structuur
to do
opmerkingen
Kiezen uit de lijst Naar aanleiding van mogelijke van de briefing nieuwe op school dat we onderwerpen die gespecialiseerde hij heeft r ondwerp voorgesteld. Wat moeten zoeken voorstudie doen en dan definitief kiezen
AnySurfer zou veel kunnen bijleren als het eindwerk zich richt op WAIARIA Ook gepolsd naar zijn mening over hoe ik het zou aanpakken
BIJLAGEN
98
08-04-2009
30-04-2009
01-05-2009
23-07-2009
24-07-2009
30-07-2009
12-08-2009
14-08-2009
20-08-2009
20-08-2009
Mailtje van Antwoord op Olivier Parent voorstel structuur (interne eindwerk promotor) Mailtje verstuurd Aanvraag naar promotors tweede zittijd ten en gevolge van hoofdcoördinato medische r problemen Antwoord van Tweede zittijd is hoofdcoördinato OK r Tom Neuttiens Mailen eerste versie naar beide promotors Mailtje van Roel Dhr. Van Gils zegt Van Gils dat hij feedback zal bezorgen op de eerste versie Mailtje van Feedback op de Betere bronnen Olivier Parent eerste versie (zie zoeken voor opmerkingen) verschil usability <> accessibility + beter nagaan definities HTML Mailtje naar Roel Tussenstand Van Gils eindwerk en tweede versie doorgemaild
Mailtje van Roel Dhr. Van Gils Van Gils vindt het op het gezicht heel goed en zal tijd nemen om het doornemen Mailtje naar Roel Definitieve versie Van Gils doorgemaild Mailtje van Roel Dhr. Van Gils Van Gils heeft eindwerk doorgelezen en is erg onder de indruk.
Dhr. Parent vindt de structuur iets te uitgebreid
- Usability <> Accessibility beter uitlegggen - Definities HTML 4, HMTL 5, XHTML 2 zijn niet goed In de tweede versie is het belangrijkste deel van het eindwerk reeds geschreven
Nog geen controle op taalfouten