SlideShare a Scribd company logo
CHOOSING AN ACCESSIBLE
UI FRAMEWORK
2CONTACT
Choosing an Accessible UI Framework
Gerard K. Cohen
Wells Fargo, Wholesale Technology Services
email:// gerardkcohen@gmail.com
twitter:// @gerardkcohen
Kevin Kalahiki
email:// kkalahiki@gmail.com
UI FRAMEWORKS
HOW DO YOU KNOW
WHICH ONE IS
ACCESSIBLE?
6TOPICS
Choosing an Accessible UI Framework
FORMS
DIALOGS
DOCUMENTATION
TABS
7CRITERIA
Choosing an Accessible UI Framework
KEYBOARD NAVIGATION/
FOCUS INDICATION
ARIA
PROPER LABELS/ DESCRIPTIONS
COLOR CONTRAST
DOCUMENTATION
FORMS
10FORM CRITERIA
Choosing an Accessible UI Framework
FOCUS INDICATION
ERROR VALIDATION
PROPER LABELS/ GROUPING
COLOR CONTRAST
TABS
12TABS CRITERIA
Choosing an Accessible UI Framework
FOCUS INDICATION
ARIA
KEYBOARD INTERACTION
COLOR CONTRAST
13TABS KEYBOARD INTERACTION
Choosing an Accessible UI Framework
LEFT/ UP FOR PREVIOUS TAB
ARROW KEYS SHOULD CYCLE
TAB KEY FOCUSES ACTIVE TAB
RIGHT/ DOWN FOR NEXT TAB
14TABS ARIA
Choosing an Accessible UI Framework
STATES: ARIA-SELECTED
ROLES: TABPANEL, TABLIST, TAB
PROPERTIES: ARIA-CONTROLS
DIALOGS
16DIALOG CRITERIA
Choosing an Accessible UI Framework
FOCUS INDICATION
ARIA
KEYBOARD INTERACTION
COLOR CONTRAST
17DIALOG ARIA
Choosing an Accessible UI Framework
ROLES: DIALOG, ALERTDIALOG
PROPERTIES: ARIA-LABEL,
ARIA-LABELLEDBY
SOLUTIONS
FORMS
20FORMS SOLUTION
Choosing an Accessible UI Framework
GROUP RELATED FIELDS WITH
FIELDSET/ LEGEND
EXPLICITLY ASSOCIATE LABELS
WITH INPUTS
CONVEY ERROR STATE AND
DESCRIPTION
21VISUALLY HIDDEN CONTENT
Choosing an Accessible UI Framework
FOUNDATION: .hidden-for-[size] ,
.visible-for-[size]
BOOTSTRAP: .sr-only
JQM: .ui-hidden-accessible
22VISUALLY HIDDEN CONTENT
Choosing an Accessible UI Framework
.u-hiddenVisually {
border: 0;
clip: rect(1px, 1px, 1px, 1px);
height: 1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
}
TABS
23TABS SOLUTION
Choosing an Accessible UI Framework
LEFT/ UP FOR PREVIOUS TAB
ARROW KEYS SHOULD CYCLE
TAB KEY FOCUSES ACTIVE TAB
RIGHT/ DOWN FOR NEXT TAB
23TABS SOLUTION
Choosing an Accessible UI Framework
Paypal Bootstrap
Accessibility Plugin
http://paypal.github.io/bootstrap-accessibility-plugin/
DIALOGS
27DIALOG SOLUTION
Choosing an Accessible UI Framework
FOCUS SHOULD RETURN TO TRIGGER
CYCLE FOCUS WITHIN DIALOG
ROLE=“DIALOG”, ARIA-HIDDEN,
ARIA-DESCRIBEDBY
FUTURE OF
FRAMEWORKS
CONCLUSION
29CONCLUSION
Choosing an Accessible UI Framework
YOU NEED TO FILL IN THE GAPS
CONTRIBUTE BACK
NO SILVER BULLET
SHARE YOUR KNOWLEDGE
CHOOSING AN ACCESSIBLE
UI FRAMEWORK

More Related Content

Viewers also liked

Tarea5 basesdatosii2016a
Tarea5 basesdatosii2016aTarea5 basesdatosii2016a
Tarea5 basesdatosii2016a
jorgegonlop
 
スライドシェアの使い方テスト。
スライドシェアの使い方テスト。スライドシェアの使い方テスト。
スライドシェアの使い方テスト。
秀貴 村木
 
Comparision of feature of Economic Survey of Transprot and Communication
Comparision of feature of Economic Survey of Transprot and CommunicationComparision of feature of Economic Survey of Transprot and Communication
Comparision of feature of Economic Survey of Transprot and Communication
gohar Iqbal
 
Procore Certificate
Procore CertificateProcore Certificate
Procore CertificateAlan Karlson
 
Ramdan campaigns in social media&online advertising
Ramdan campaigns in social media&online advertisingRamdan campaigns in social media&online advertising
Ramdan campaigns in social media&online advertising
FREE LANCE
 
Peñalosa y sus pecados capitales
Peñalosa y sus pecados capitalesPeñalosa y sus pecados capitales
Peñalosa y sus pecados capitales
John Sudarsky
 
Islandia
Islandia Islandia
Alemania
AlemaniaAlemania
Tema 9. población española actual
Tema 9. población española actualTema 9. población española actual
Tema 9. población española actual
Alberto Fernández Puig
 
Atomic design
Atomic designAtomic design
Atomic design
Brad Frost
 

Viewers also liked (11)

Tarea5 basesdatosii2016a
Tarea5 basesdatosii2016aTarea5 basesdatosii2016a
Tarea5 basesdatosii2016a
 
スライドシェアの使い方テスト。
スライドシェアの使い方テスト。スライドシェアの使い方テスト。
スライドシェアの使い方テスト。
 
Comparision of feature of Economic Survey of Transprot and Communication
Comparision of feature of Economic Survey of Transprot and CommunicationComparision of feature of Economic Survey of Transprot and Communication
Comparision of feature of Economic Survey of Transprot and Communication
 
Procore Certificate
Procore CertificateProcore Certificate
Procore Certificate
 
Ramdan campaigns in social media&online advertising
Ramdan campaigns in social media&online advertisingRamdan campaigns in social media&online advertising
Ramdan campaigns in social media&online advertising
 
Peñalosa y sus pecados capitales
Peñalosa y sus pecados capitalesPeñalosa y sus pecados capitales
Peñalosa y sus pecados capitales
 
Islandia
Islandia Islandia
Islandia
 
Alemania
AlemaniaAlemania
Alemania
 
Tema 9. población española actual
Tema 9. población española actualTema 9. población española actual
Tema 9. población española actual
 
Mul7
Mul7Mul7
Mul7
 
Atomic design
Atomic designAtomic design
Atomic design
 

Similar to Choosing and Accessible UI Framework

User Experience & User Interface Design - nov 2017
User Experience & User Interface Design - nov 2017User Experience & User Interface Design - nov 2017
User Experience & User Interface Design - nov 2017
Andrea Vaccarella
 
ch10.ppt
ch10.pptch10.ppt
ch10.ppt
nazimsattar
 
MOBILE APP[AICTE] SMART EDUCATION.pptx
MOBILE APP[AICTE] SMART EDUCATION.pptxMOBILE APP[AICTE] SMART EDUCATION.pptx
MOBILE APP[AICTE] SMART EDUCATION.pptx
MAANEESHASs
 
SAP ABAP Online Training Institute in Hyderabad - C-Point
SAP ABAP Online Training Institute in Hyderabad - C-PointSAP ABAP Online Training Institute in Hyderabad - C-Point
SAP ABAP Online Training Institute in Hyderabad - C-Point
cpointss
 
Heuristic Evaluation of iCalamityGuide Application
Heuristic Evaluation of iCalamityGuide ApplicationHeuristic Evaluation of iCalamityGuide Application
Heuristic Evaluation of iCalamityGuide ApplicationScott Abromowitz
 
User interface design for the Web Engineering Psychology
User interface design for the Web Engineering PsychologyUser interface design for the Web Engineering Psychology
User interface design for the Web Engineering Psychology
LawrenceNajjar
 
Ayres shannon resume.4.17.12
Ayres shannon resume.4.17.12Ayres shannon resume.4.17.12
Ayres shannon resume.4.17.12shanayres
 
Salesforce crm-training-in-bangalore
Salesforce crm-training-in-bangaloreSalesforce crm-training-in-bangalore
Salesforce crm-training-in-bangaloreKelly Technologies
 
Windows Phone Garage - Application Jumpstart
Windows Phone Garage - Application JumpstartWindows Phone Garage - Application Jumpstart
Windows Phone Garage - Application JumpstartGlen Gordon
 
Erp And Infragistics
Erp And InfragisticsErp And Infragistics
Erp And Infragistics
Himanshu Bhatt
 
Ux tips to design better online forms
Ux tips to design better online formsUx tips to design better online forms
Ux tips to design better online forms
Fibonalabs
 
Care with Source2VALUE
Care with Source2VALUECare with Source2VALUE
Care with Source2VALUEmeijerandre
 
Code vauch
Code vauchCode vauch
Code vauch
Umesh Hodar
 
Better Design Built Faster: Using New UI Technologies to Speed Development
Better Design Built Faster: Using New UI Technologies to Speed DevelopmentBetter Design Built Faster: Using New UI Technologies to Speed Development
Better Design Built Faster: Using New UI Technologies to Speed Development
goodfriday
 
The Salient Process SPARK UI toolkit for IBM BPM
The Salient Process SPARK UI toolkit for IBM BPMThe Salient Process SPARK UI toolkit for IBM BPM
The Salient Process SPARK UI toolkit for IBM BPM
Dennis Parrott
 
Soprex framework on .net in action
Soprex framework on .net in actionSoprex framework on .net in action
Soprex framework on .net in action
Milan Vukoje
 

Similar to Choosing and Accessible UI Framework (20)

User Experience & User Interface Design - nov 2017
User Experience & User Interface Design - nov 2017User Experience & User Interface Design - nov 2017
User Experience & User Interface Design - nov 2017
 
ch10.ppt
ch10.pptch10.ppt
ch10.ppt
 
MOBILE APP[AICTE] SMART EDUCATION.pptx
MOBILE APP[AICTE] SMART EDUCATION.pptxMOBILE APP[AICTE] SMART EDUCATION.pptx
MOBILE APP[AICTE] SMART EDUCATION.pptx
 
SAP ABAP Online Training Institute in Hyderabad - C-Point
SAP ABAP Online Training Institute in Hyderabad - C-PointSAP ABAP Online Training Institute in Hyderabad - C-Point
SAP ABAP Online Training Institute in Hyderabad - C-Point
 
Heuristic Evaluation of iCalamityGuide Application
Heuristic Evaluation of iCalamityGuide ApplicationHeuristic Evaluation of iCalamityGuide Application
Heuristic Evaluation of iCalamityGuide Application
 
User interface design for the Web Engineering Psychology
User interface design for the Web Engineering PsychologyUser interface design for the Web Engineering Psychology
User interface design for the Web Engineering Psychology
 
iCalamity (DUXU - 2013)
iCalamity (DUXU - 2013)iCalamity (DUXU - 2013)
iCalamity (DUXU - 2013)
 
Ayres shannon resume.4.17.12
Ayres shannon resume.4.17.12Ayres shannon resume.4.17.12
Ayres shannon resume.4.17.12
 
Salesforce crm-training-in-bangalore
Salesforce crm-training-in-bangaloreSalesforce crm-training-in-bangalore
Salesforce crm-training-in-bangalore
 
Os Napier
Os NapierOs Napier
Os Napier
 
Windows Phone Garage - Application Jumpstart
Windows Phone Garage - Application JumpstartWindows Phone Garage - Application Jumpstart
Windows Phone Garage - Application Jumpstart
 
Erp And Infragistics
Erp And InfragisticsErp And Infragistics
Erp And Infragistics
 
My Resume
My ResumeMy Resume
My Resume
 
Ux tips to design better online forms
Ux tips to design better online formsUx tips to design better online forms
Ux tips to design better online forms
 
Care with Source2VALUE
Care with Source2VALUECare with Source2VALUE
Care with Source2VALUE
 
Code vauch
Code vauchCode vauch
Code vauch
 
Erp And Infragistics
Erp And InfragisticsErp And Infragistics
Erp And Infragistics
 
Better Design Built Faster: Using New UI Technologies to Speed Development
Better Design Built Faster: Using New UI Technologies to Speed DevelopmentBetter Design Built Faster: Using New UI Technologies to Speed Development
Better Design Built Faster: Using New UI Technologies to Speed Development
 
The Salient Process SPARK UI toolkit for IBM BPM
The Salient Process SPARK UI toolkit for IBM BPMThe Salient Process SPARK UI toolkit for IBM BPM
The Salient Process SPARK UI toolkit for IBM BPM
 
Soprex framework on .net in action
Soprex framework on .net in actionSoprex framework on .net in action
Soprex framework on .net in action
 

Recently uploaded

Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 

Recently uploaded (20)

Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 

Choosing and Accessible UI Framework

Editor's Notes

  1. How many of you are are actively looking for a framework? How many of you didn’t make it to Karl Groves and Billy Gregory’s presentation? How many of you didn’t know Karl Groves and Billy Gregory were presenting at this same time? I will turn around and count to 10, if you want to leave I will not count it against you… For those of you here, thank you. You could have chosen to sleep in, or any other presentation, but I am glad you are here. INTRODUCTIONS
  2. Evaluating UI frameworks and libraries for your latest web development project is no easy task. Each decision maker has their own set of criteria based on their past experience and overall project or task at hand. Some common criteria factors are: ease of use, architecture, opinionated vs non-opinionated, customization, large community, open source, popularity, visual design, 3rd party modules, file size, MV* patterns, etc. Though determining this criteria is not covered in this discussion you need to ask yourself: Where does accessibility rank on your list of things to evaluate? Using one of these UI frameworks and libraries for your web project makes for rapid and easy development, so picking the right framework or library for your next web development project can have a serious impact on your ability to deliver on time and ensure future maintainability. Unfortunately, the speed and ease at which these frameworks allow you to develop often means that accessibility can easily be overlooked and taken for granted. NEXT SLIDE: How do you know the one you choose is accessible?
  3. How? We will go over some basic checks, a starting off point, on what to look for.
  4. It is not my intention to bash any of these frameworks. Building a framework is hard and takes a lot of work. I am extremely appreciative of these frameworks for the time and effort they have put in in order to make the development of my projects easier.
  5. Does the framework document a11y intentions? Do code examples exhibit a11y best practices?
  6. Proper labels/ descriptions: Is semantic meaning being conveyed? Keyboard navigation: Can a user perform tasks without the use of a mouse? Is focus indication defined, can a user know where they are at all times? Color Contrast: Is the CSS styles of each framework/ theme good for low-vision users? Minimum 4.5:1 If ARIA is needed, are the right roles, states, and properties being used? We will be using WAI-ARIA 1.0 Authoring Practices as our guide for widgets, i.e tab and dialog. Google Chrome Accessibility Developer Tools for inspection Google ChromeVox as screenreader
  7. Angular Doc: ngAria with code examples (aria-checked not updated?) Common a11y patterns Additional Resources Good info! Bootstrap Doc Foundation Doc Copied from Bootstrap? JQM Doc: Slim, mentions accessibly hiding menus
  8. Forms are everywhere! Extremely easy to get right, extremely easy to get wrong! Just good, semantic form markup! Error validation is usually customized, so some aria will be needed.
  9. Visit Angular FORMS Test keyboard and focus indication Test via chrome a11y tools, check label associations, check color contrast of validation ChromeVOX: CONTROL + COMMAND + A + A Check if error state is always read out loud Bootstrap forms Note about using labels for accessibility, Good documentation for a11y Forms are CSS only, meaning validation state should be handled manually via JS. No grouping, except for disabled groups of fields Foundation Forms "Note about labels and accessibility switches and range use custom elements, switches require strange, markup” Focus indication does not pass color contrast No grouping JQM Passed all except color contrast for default (blue/ white theme) Uses native form elements ensuring accessibility will always be supported even though highly stylized
  10. A “tabbed” interface that allows dynamic switching of content
  11. Tab to tabs Arrow keys? Focus indicaition Use a11y dev tools to check aria-roles
  12. Additional key combinations, CTRL + UP/ PAGE UP/DOWN are mentioned but might conflict with browser interactions, ie switching browser tabs. They are also somewhat Windows keyboard-centric
  13. List of tabs has a role=“tablist” Tabs have role=“tab”, property aria-controls with id of of content, and communicate selected state via aria-selected Content containers have role=“tabpanel” Visit Bootsrap tabs focus indication and color contrast is good Keyboard nav is not there Aria is ok Check with chromevox CONTROL + COMMAND + A + A Angular Tabs No focus indication on selected item Tab to control and left/ right arrows ok Not cyclical, no up/down. Navigation does not activate tab, must press enter Aria is ok JQM: PERFECT! Keyboard nav, color contrast, aria all perfect Foundation: No focus indication makes keyboard nav useless Tab to control and left/ right arrows ok Not cyclical, no up/down. Navigation does not activate tab, must press enter Aria is ok
  14. Overlay that either prompts user for a response or presents additional information
  15. Initial focus should go to either the first focusable element or the dialog container TAB/ SHIFT-TAB should cycle through focusable elements, never leaving the panel ESC should close the panel and return focus to the triggering element ENTER should submit form, if available but care is needed if other elements inside the dialog use ENTER.
  16. Role=dialog Simple dialogs like alerts/ confirmations should use role=“alertdialog” Dialog is labelled by either aria-label or aria-labelledby Additional aria seen later for better use Foundation Dialog Docs already note this is not accessible Tab not restricted to panel Focus does not return to trigger Esc and click outside does close dialog Invalid markup, no aria Check with Chromevox Angular Dialog Focus indication ok, keyboard , Tab not restricted to panel Focus does not return to trigger Esc and click outside does close dialog JQM: Good aria, tab not restriced to keyboard, focus not on trigger, esc and click outside to close Bootstrap: Tabs restricted, but there is shift-tab keyboard trap. Escape closes dialog
  17. So now we see that there are some things lacking in order to make the use of frameworks in our application more accessible. What are some of the things we can do?
  18. Again, forms are extremely easy to get right, and just as easy to get wrong.
  19. AFTER, show Angular FORM Code Add fieldset Explicitly associated labels with inputs Used fieldset with visually hidden css Color contrast of error messages changed Uses live-region to express error messages, but aria-descibedby might better in addition
  20. Just add js after after bootstrap Add ARIA roles like tablist, presentation, and tab for tabs UL, LI. Add tabIndex, aria-expanded, aria-selected, aria-controls for tab. Add ARIA roles of tabPanel, tabIndex, aria-hidden, and aria-labelledBy for tabPanel. Add keydown event listener for the tab to work with keyboard. Dynamically flip tabIndex, aria-selected, and aria-expanded for tab when it is activated and add aria-hidden to hide the previously visible tab.
  21. Wrap body content in container in order to maintain aria-hidden when panel is open Role=“dialog” Aria-describedby=“dialog-title” Aria-hidden Tabindex=0 Move close trigger to logical order, after title Change close trigger to button Close trigger being read as “multiplication”. Add aria-hidden and visually hidden text “close dialog” Focus close button upon opening Focus trigger upon closing Show code for tab cycle
  22. Angular – Marcy Sutton: undoubtedly biased, but Angular Material has some of the best accessibility support around for being a new framework. Angular 1.x had ngAria as a module, Angular 2.0 will essentially have ngAria built-in. Material Design won’t release components until a11y is built-in. Material Design enforces text alternatives via warnings in the console. Even better, a11y plugin for Protractor (e2e testing for Angular) that uses either Chrome Accessibility Developer Tools or Tenon.io by Karl Groves. Foundation – Brandon, Foundation Lead – Rafi, Customer Advocate: Next version of Foundation for web, v6, is being built from the ground up with a11y as a focus. No component will make build unless it passes a11y. Fixing docs, keyboard, and color contrast Bootstrap - Patrick Lauke V4 is a complete overhaul, with simplification and refactoring of most existing CSS/JS components Working hard trying to get Paypal a11y plugin back in Patrick will be overseeing/ triaging all new features/ pull requests Mostly volunteer basis
  23. This is it. We looked at some popular frameworks, some common interactions and patterns, used a basic checklist to evaluate and came up with some solutions. So what did we learn?
  24. Frameworks are hard to get completely accessible, implementations can vary. Ultimately, you need to do what is best for your users. Frameworks should give you the proper tools to do so. Share the knowledge, be an advocate. All the frameworks I tallked to said they greatly welcome any contributions/ pull requests to help with a11y. Open source is a community effort.