[EDS-26] Investigate diferentiating screen readers Created: 15/Oct/11 Updated: 19/Jun/15 Resolved: 19/Jun/15 Status: Project: Component/s: Affects Version/s: Fix Version/s: Closed Embedded Discovery Service None None Type: Reporter: Resolution: Labels: Remaining Estimate: Time Spent: Original Estimate: Task Rod Widdowson Fixed None 0 minutes 1.1.0 Priority: Assignee: Major Rod Widdowson 7 hours, 10 minutes 3 hours Multiple Operating System: Multiple CPU Type: C/C++ Compiler: Multiple Multiple Web Server: Sun 1.6 Java Version: Jetty 7 Servlet Container: Description This might involve selecting the drop down list in preference to the typeahead list. Comments Comment by Rod Widdowson [ 03/Jan/15 ] We probably need to put out a request from people with access to screen readers? To Discuss Comment by Rod Widdowson [ 15/Jan/15 ] Feedback from Keith: " Smal problem #1: page has no language attribute on the HTML element. Since this page will be used internationally, that'd probably be wise. Of course, one can always operate on the assumption that all of the shibboleth.net resources are in English, but it's no big deal to add a language attribute. Small problem #2: the form on the EDW page is missing a label. This is true for both the enter your organization form and the select from a list form. Big problem: when typing in my organization's name, the custom combo box used is not at all accessible. My screem doesn't even pick it up, leaving me to page through the 2,000+ IDPs in the list instead of using this faster route. A proper ARIA solution would vastly improve the accessibility here, either with an ARIA combo box or an ARIA auto-complete. I'm including a link with a sample of an ARIA combo box with in-line auto-complete. If you need help adapting this to the EDS, please feel free to contact me off-list and I'll put you in touch with our accessibility specialist. http://oaa-accessibility.org/examplep/combobox2/ Comment by Rod Widdowson [ 20/Jan/15 ] I looked at the OAA stuff and its very compelling. However it uses JQuery which I have always avoided (although its very common these days). This has several issue before I even start to look more closely Its license under a joint MIT/ GPL license. I expect that both of these are completely hostile to BSD. It will take significant work to mesh this up with the CSS we currently have. However I think that there may be some mileage in chasing up this whole ARIA thing. I'll keep on looking Comment by Rod Widdowson [ 20/Jan/15 ] So the ARIA thing is "just" the decoration of various nodes in the DOM with various attributes which act as semantic signals to the screen reader From my very roundabout grasp of things this might not be too difficult to add to the typeahead package since we already have calls for "This guys is selected", and "show the drop down", hide the dropdown". Nonetheless phrases like "The WAI-ARIA role taxonomy was modeled using semantic web technology, in the form of Resource Description Framework (RDF) [RDF] and the Web Ontology Language (OWL) [OWL]," which is found in the "primer" for this technology make my brain explode so I'll leave this for today and try again tomorrow. Comment by Rod Widdowson [ 04/Feb/15 ] I sent off an example to the guys at Illinois to 50% success. I asked one of the devs there for help and his reponse was great I was able to take a look at the script. You are almost there as far as implementing an ARIA combobox, but there are a few more things to do. As an ARIA widget role, combobox causes the browser to expect the application to handle things like updating visual state and managing focus. A combobox assumes that focus will remain on the input control. It uses the aria property aria-activedescendant to specify which of the options have focus. The value of active descendant is the id of the selected option, and it should be updated as a user arrows through the options or when a user clicks on an option with the mouse. If you are setting the control to a default value from the option list, it should be set when the control is initialized. When a user clicks on an option, set focus back on the input control as part of the click handler. Next, since focus will remain on the input control, the aria-expanded property must be placed on that control, not on the listbox as you have now. Also, adding aria-owns and pointing it to the listbox (as with aria-controls) causes assistive technologies to treat the listbox as if it is contained by the combobox widget. Lastly, the list of options should be placed in an unordered list rather than as a series of divs. I¹ve seen some implementations that use divs for list boxes, but it doesn¹t seem to work as well. Aria-hidden should be set on the listbox and set to false when the list is expanded. This is because some browsers and assistive technologies will still read elements with display: none or visibility: hidden. The modified markup would look something like this: <input id=³idpSelectInput² type=³text² role=³combobox² aria-controls=³IdPSelectDropDown² aria-owns=³IdpSelectDropDown² aria-expanded=³false² aria-activedescendant=³²> <ul class="IdPSelectDropDown² aria-hidden=³true² style="visibility: hidden; left: 20px; top: 204px;"> <li id=³opt1² class="" role="option" aria-selected="false²>RENATA Red Nacional Academica de Tecnologia Avanz</li> <li id=³opt2² class="" role="option" aria-selected="false">AAI@EduHr Single Sign-On Service</li> <li id=³opt3² class="" role="option" aria-selected="false"> <img width="16" height="16" src="https://idp1.abertay.ac.uk/icons/small/shield_16x16.ico" alt=""> Abertay University </li> </ul> I need to interalize this.. Comment by Rod Widdowson [ 05/Feb/15 ] Revised example sent off to Keith Generated at Tue Feb 09 06:03:15 EST 2016 using JIRA 7.0.10#70120sha1:37e3d7a6fc4d580639533e7f7c232c925e554a6a.