SlideShare a Scribd company logo
1 of 22
ARIA 1.1/1.2
A Practical Perspective
HOWDY!
Name: Mark Steadman
Title: Director, Mobile Accessibility
Company: Fidelity Investments
Twitter: @Steady5063
Name: Birkir Gunnarsson
Title: Team Lead PI Accessibility
Company: Fidelity Investments
Twitter: @birkir_gun
• Before we begin this talk, we must make one thing clear
• The number one rule of ARIA you will see is “Don’t use ARIA”.
• This could not be farther from the truth.
• True statement should be:
“Only use ARIA, if there is no equivalent in HTML OR
enhancement is needed for HTML content”
Word Of Caution
• Accessible Rich Internet Applications (ARIA) is a set of roles and attributes that define ways to make
web content and web applications (especially those developed with JavaScript) more accessible to
people with disabilities. – MDN web docs
• Was made to help fill in the gaps of semantic and native HTML and enhance accessibility of it.
Quick Intro to ARIA
<h1> ARIA-Pressed Example </h1>
<button class="btn" id="buttonOne">Press me please!</button>
<button class="btn" id="buttonTwo” aria-pressed=“true”>No press
me!</button>
ARIA Enhancement Example
How Useful is Your ARIA?
• When looking at should we use ARIA or not, we need to think about the end user
• Would using ARIA:
• Enhance the user experience?
• Add ESSENTIAL value to the item in question?
• Is there native HTML that is easier to do this with?
<div class="btn" role="button" tabindex="0" aria-label="my button">My Button</div>
<button class="btn">My Button</button>
<label for="name">Name:</label>
<input id="name" type="text" aria-describedby="helpText"/>
<span id="helpText">This is your full legal name, including middle</span>
Introducing The ARIA-na Grande Scale!
Conditions For Rating Scale
• We consider ARIA role or attribute to be effective if it meets 3 conditions
• It addresses a common problem that cannot be easily addressed using HTML markup.
• It must be understood and applied correctly by developers.
• In order to conform to WCAG it must be accessibility supported.
Point Scale For Rating
• We rate the usefulness of individual ARIA 1.1 roles/attributes on a 5-point scale.
• A rating of 4 or 5 means use the role/attribute, at least cautiously with user agent testing.
• A rating of 3 means use the role/attribute as soon as assistive technology support catches up.
• A rating of 2 means we can imagine needing to use the role/attribute but have not found an actual
scenario yet, or I don’t expect assistive technology support for it in the foreseeable future.
• A rating of 1 means we don’t understand why I would ever need to use the role/attribute
Role Name Rating Reasoning
Table/Cell 4/5 Can build an entire table from <div>, imagine that. It is well supported across
screen readers too.
None 1.5/5 Repeat of ‘presentation’. Why add a role that does the same thing?
Searchbox 2/5 No real explanation for how it behaves different from a regular text input. There's
already a search landmark if you want to identify it
Switch 3/5 Good support. However, no value added that a checkbox or toggle button couldn’t
do
Figure 1/5 the <figure> element is mapped to a group role in most screen readers, so a figure
role isn't going to change anything, why not just use role="group" and aria-
label="figure"
Feed 3/5 Supported okay. Has some value where live streamed items can be announced but
is a bit wonky in use.
Definition/Term 1.5/5 Can be done in HTML, however neither are truly well supported
ARIA 1.1 Roles
Attribute Name Rating Reasoning
aria-modal 5/5 Solves an otherwise impossible problem! Hides all background content and
keeps it focus in the modal
aria-current 4.5/5 excellent, easy, and all round compatible way to indicate select element in a
group of elements, full support.
aria-placeholder 1/5 placeholder is a bad pattern to begin with, why encourage it in ARIA?
aria-colcount/aria-rowcount 2.5/5 Use case is few and far between. Has support but when is it truly needed?
aria-colindex/aria-rowindex 2.5/5 Same as rolcount/rowcount
aria-rowspan/aria-colspan 2/5 Currently little to no support.
aria-keyshortcuts 2/5 Little support. Truly needed for sighted keyboard users
aria-roledescription 2.5/5 Good support. Works well with actionable elements, but not with grouping
elements.
aria-errormessage 3.5/5 Solves a very real problem. Support is growing rapidly
aria-details 3/5 Connecting element to another element that describes it is a real problem.
Support is just not there yet.
aria-haspopup 2.5/5 Good idea on paper, but very little support yet.
ARIA 1.1 Attributes
• aria-errormessage:
• Why: You have can connect errormessage to field in error with ease!
• Can HTML do it?: No.You can do this using the aria-describedby attribute, but there is a catch. If
you point aria-describedby at an element, its content gets announced regardless of how the
element is hidden.
• Example: https://codepen.io/Wildebrew/pen/RyeGZw
• aria-modal
• Why: You have a modal dialog and you need to lock in keyboard focus in it.
• Can HTML do it?: No way to do it in HTML! <dialog> has come a long way but still has its
shortcomings
• Example: https://codepen.io/Wildebrew/pen/LexQQr
ARIA 1.1 - Best
aria-modal Example
ARIA 1.1 - Best
• aria-current:
• Why: You have a group of items, one of them is selected visually, but you need something
to indicate it programmatically.
• Can HTML do it?: Short of hacks with visually hidden text or the title attribute, no.
• Example: https://codepen.io/markSteady/pen/yLxpoZx
aria-current Example
• role=‘definition’
• Why: It has very little no support, and its usage is almost none.
• Can HTML do it?: Can be done in HTML, however neither are truly well supported
• Example: https://codepen.io/markSteady/pen/KKxZvOx
• role=‘none’:
• Why: It is the same thing as presentation. Made to cause less confusion
• Can HTML do it?: No, although just a <div> can essentially be it.
• Example: https://codepen.io/markSteady/pen/gOdoGOR
ARIA 1.1 -Worst
• aria-placeholder:
• Why: placeholder is a bad pattern to begin with, why encourage it in ARIA? It isn’t support hardly at all
too.
• Can HTML do it?: Yes. However, it is a pattern that is not something we want to encourage
• Example: https://codepen.io/markSteady/pen/MWqrEYL
• searchbox:
• Why: No real explanation for how it behaves different from a regular text input. There's already a search
landmark if you want to identify it
• Can HTML do it?: Yes you can achieve this with input and type=“search”
• Example: https://codepen.io/markSteady/pen/eYLyGpa
ARIA 1.1 -Worst
ARIA 1.1 – Worst Coding Samples
<label for="semantic">Input Search Example</label>
<input id="semantic" type=”search"/>
<label id=”custom”> Custom search input</label>
<div contenteditable role="searchbox” aria-labelledby=”custom”> Search here yo </div>
Input Search Good/Bad
<label for="semantic">Input Placeholder Example</label>
<input id="semantic" type=”text" placeholder="I did this in HTML"/>
<label id=”custom">Input ARIA Placeholder</label>
<div id="aria” contenteditable role="textbox” aria-labelledby=”custom”
aria-placeholder="I did this with ARIA">I did this with ARIA</div>
Input Placeholder Good/Bad
• Use Automated Tools
• Using automated tools allows for quick and effective way to check if the ARIA is properly implemented
• Does it catch everything? Absolutely not, but the basic issues with implementing can be!
• Tools to use
• WAVE
• Can see the ARIA attributes/roles used on page
• Can also see potential misuses
• Axe Devtools Extension
• 16 hard ARIA checks
• 4 Best practices checks
• See the rules here: https://github.com/dequelabs/axe-core/blob/develop/doc/rule-descriptions.md
Validating and Testing Your ARIA
• Using ARIA authoring practices in tandem A11ySupport.io
• Don’t like the support you get for an ARIA attribute? Open an issue!
• https://github.com/nvaccess/nvda/issues
• https://github.com/FreedomScientific/VFO-standards-support/issues
Validating and Testing Your ARIA cont.
• ARIA 1.2
• Didn't add much, seems to be focused on parity with HTML
• Adds smart restrictions and semantics that make them much easier to validate with automated tools
• Simplifies some overly complex patterns e.g. combobox
• Future ask for ARIA
• Continue to build for gaps, not for bad development practices
Looking To The Future 1.2 and Beyond
ONE ASK BEFORE WE GO….
• Do not over do it and keep it simple
• HTML where you can
• ARIA authoring practices
• A11ysupport.io
• Slay Complexity
• Do not overthink the development of components
• Use the tools available when needed to help fill in the gaps with ARIA

More Related Content

What's hot

Introduction To Web Accessibility
Introduction To Web AccessibilityIntroduction To Web Accessibility
Introduction To Web AccessibilitySteven Swafford
 
Web accessibility
Web accessibilityWeb accessibility
Web accessibilityAGILEDROP
 
Accessible Design Presentation
Accessible Design PresentationAccessible Design Presentation
Accessible Design PresentationTopher Kanyuga
 
Design for accessibility
Design for accessibilityDesign for accessibility
Design for accessibilityYogeshDaphane
 
Understanding Web Accessibility
Understanding Web AccessibilityUnderstanding Web Accessibility
Understanding Web AccessibilityAndrea Dubravsky
 
What is accessibility?
What is accessibility?What is accessibility?
What is accessibility?Russ Weakley
 
Web accessibility 101: The why, who, what, and how of "a11y"
Web accessibility 101: The why, who, what, and how of "a11y"Web accessibility 101: The why, who, what, and how of "a11y"
Web accessibility 101: The why, who, what, and how of "a11y"ecentricarts
 
WCAG 2.0, Simplified
WCAG 2.0, SimplifiedWCAG 2.0, Simplified
WCAG 2.0, Simplifiedciwstudy
 
Digital Accessibility - The Quick Wins
Digital Accessibility - The Quick WinsDigital Accessibility - The Quick Wins
Digital Accessibility - The Quick WinsMedia Access Australia
 
Accessibility In Mobile Dev LifeCycle.pptx
Accessibility In Mobile Dev LifeCycle.pptxAccessibility In Mobile Dev LifeCycle.pptx
Accessibility In Mobile Dev LifeCycle.pptxMarkSteadman7
 
Basics of Web Accessibility
Basics of Web AccessibilityBasics of Web Accessibility
Basics of Web AccessibilityMoin Shaikh
 
WCAG 2.1 and POUR
WCAG 2.1 and POURWCAG 2.1 and POUR
WCAG 2.1 and POURAlena Huang
 
Front-end development introduction (HTML, CSS). Part 1
Front-end development introduction (HTML, CSS). Part 1Front-end development introduction (HTML, CSS). Part 1
Front-end development introduction (HTML, CSS). Part 1Oleksii Prohonnyi
 
UX and Accessibility
UX and Accessibility UX and Accessibility
UX and Accessibility Frank Cervone
 

What's hot (20)

Introduction To Web Accessibility
Introduction To Web AccessibilityIntroduction To Web Accessibility
Introduction To Web Accessibility
 
Web accessibility
Web accessibilityWeb accessibility
Web accessibility
 
Accessible Design Presentation
Accessible Design PresentationAccessible Design Presentation
Accessible Design Presentation
 
Web Accessibility
Web AccessibilityWeb Accessibility
Web Accessibility
 
Design for accessibility
Design for accessibilityDesign for accessibility
Design for accessibility
 
Understanding Web Accessibility
Understanding Web AccessibilityUnderstanding Web Accessibility
Understanding Web Accessibility
 
What is accessibility?
What is accessibility?What is accessibility?
What is accessibility?
 
Accessibility
AccessibilityAccessibility
Accessibility
 
Web Accessibility Testing With Axe
Web Accessibility Testing With AxeWeb Accessibility Testing With Axe
Web Accessibility Testing With Axe
 
Web accessibility 101: The why, who, what, and how of "a11y"
Web accessibility 101: The why, who, what, and how of "a11y"Web accessibility 101: The why, who, what, and how of "a11y"
Web accessibility 101: The why, who, what, and how of "a11y"
 
WCAG 2.0, Simplified
WCAG 2.0, SimplifiedWCAG 2.0, Simplified
WCAG 2.0, Simplified
 
Digital Accessibility - The Quick Wins
Digital Accessibility - The Quick WinsDigital Accessibility - The Quick Wins
Digital Accessibility - The Quick Wins
 
Introduction To WCAG 2.0
Introduction To WCAG 2.0Introduction To WCAG 2.0
Introduction To WCAG 2.0
 
Accessibility In Mobile Dev LifeCycle.pptx
Accessibility In Mobile Dev LifeCycle.pptxAccessibility In Mobile Dev LifeCycle.pptx
Accessibility In Mobile Dev LifeCycle.pptx
 
WCAG
WCAGWCAG
WCAG
 
Accessibilitytesting public
Accessibilitytesting publicAccessibilitytesting public
Accessibilitytesting public
 
Basics of Web Accessibility
Basics of Web AccessibilityBasics of Web Accessibility
Basics of Web Accessibility
 
WCAG 2.1 and POUR
WCAG 2.1 and POURWCAG 2.1 and POUR
WCAG 2.1 and POUR
 
Front-end development introduction (HTML, CSS). Part 1
Front-end development introduction (HTML, CSS). Part 1Front-end development introduction (HTML, CSS). Part 1
Front-end development introduction (HTML, CSS). Part 1
 
UX and Accessibility
UX and Accessibility UX and Accessibility
UX and Accessibility
 

Similar to ARIA_11_12_Practical_Perspective.pptx

Scaling Plugins in Critical Systems - Jon Mort
Scaling Plugins in Critical Systems - Jon MortScaling Plugins in Critical Systems - Jon Mort
Scaling Plugins in Critical Systems - Jon MortAtlassian
 
Cucumber Presentation Kiev Meet Up
Cucumber Presentation Kiev Meet UpCucumber Presentation Kiev Meet Up
Cucumber Presentation Kiev Meet Updimakovalenko
 
Selenium and Cucumber Selenium Conf 2011
Selenium and Cucumber Selenium Conf 2011Selenium and Cucumber Selenium Conf 2011
Selenium and Cucumber Selenium Conf 2011dimakovalenko
 
WAI-ARIA - an introduction to accessible rich internet applications (1 day wo...
WAI-ARIA - an introduction to accessible rich internet applications (1 day wo...WAI-ARIA - an introduction to accessible rich internet applications (1 day wo...
WAI-ARIA - an introduction to accessible rich internet applications (1 day wo...Patrick Lauke
 
Refactoring Fat Models: Trying to be a Software Engineer
Refactoring Fat Models: Trying to be a Software EngineerRefactoring Fat Models: Trying to be a Software Engineer
Refactoring Fat Models: Trying to be a Software EngineerJyaasa Technologies
 
ARIA Techniques for Accessible Web Forms
ARIA Techniques for Accessible Web FormsARIA Techniques for Accessible Web Forms
ARIA Techniques for Accessible Web FormsAidan Tierney
 
WAI-ARIA An introduction to Accessible Rich Internet Applications / CSS Minsk...
WAI-ARIA An introduction to Accessible Rich Internet Applications / CSS Minsk...WAI-ARIA An introduction to Accessible Rich Internet Applications / CSS Minsk...
WAI-ARIA An introduction to Accessible Rich Internet Applications / CSS Minsk...Patrick Lauke
 
WAI-ARIA An introduction to Accessible Rich Internet Applications / JavaScrip...
WAI-ARIA An introduction to Accessible Rich Internet Applications / JavaScrip...WAI-ARIA An introduction to Accessible Rich Internet Applications / JavaScrip...
WAI-ARIA An introduction to Accessible Rich Internet Applications / JavaScrip...Patrick Lauke
 
Testing For Web Accessibility
Testing For Web AccessibilityTesting For Web Accessibility
Testing For Web AccessibilityHagai Asaban
 
What is wrong with Jira? My top 20 for 2020.
What is wrong with Jira?  My top 20 for 2020.What is wrong with Jira?  My top 20 for 2020.
What is wrong with Jira? My top 20 for 2020.David Hanson
 
PHPConf.asia 2016 - BDD with Behat for Beginners
PHPConf.asia 2016 - BDD with Behat for BeginnersPHPConf.asia 2016 - BDD with Behat for Beginners
PHPConf.asia 2016 - BDD with Behat for BeginnersAdam Englander
 
Documenting APIs: Sample Code and More (with many pictures of cats)
Documenting APIs: Sample Code and More (with many pictures of cats)Documenting APIs: Sample Code and More (with many pictures of cats)
Documenting APIs: Sample Code and More (with many pictures of cats)Anya Stettler
 
Automated Acceptance Tests & Tool choice
Automated Acceptance Tests & Tool choiceAutomated Acceptance Tests & Tool choice
Automated Acceptance Tests & Tool choicetoddbr
 
[drupalday2017] - Behat per Drupal: test automatici e molto di più
[drupalday2017] - Behat per Drupal: test automatici e molto di più[drupalday2017] - Behat per Drupal: test automatici e molto di più
[drupalday2017] - Behat per Drupal: test automatici e molto di piùDrupalDay
 
Ruby On Rails Tutorial
Ruby On Rails TutorialRuby On Rails Tutorial
Ruby On Rails Tutorialsunniboy
 
Rey Bango - HTML5: polyfills and shims
Rey Bango -  HTML5: polyfills and shimsRey Bango -  HTML5: polyfills and shims
Rey Bango - HTML5: polyfills and shimsStarTech Conference
 
Web Accessibility for the 21st Century
Web Accessibility for the 21st CenturyWeb Accessibility for the 21st Century
Web Accessibility for the 21st Centurydreamwidth
 

Similar to ARIA_11_12_Practical_Perspective.pptx (20)

Scaling Plugins in Critical Systems - Jon Mort
Scaling Plugins in Critical Systems - Jon MortScaling Plugins in Critical Systems - Jon Mort
Scaling Plugins in Critical Systems - Jon Mort
 
Html5 accessibility
Html5 accessibilityHtml5 accessibility
Html5 accessibility
 
Cucumber Presentation Kiev Meet Up
Cucumber Presentation Kiev Meet UpCucumber Presentation Kiev Meet Up
Cucumber Presentation Kiev Meet Up
 
Selenium and Cucumber Selenium Conf 2011
Selenium and Cucumber Selenium Conf 2011Selenium and Cucumber Selenium Conf 2011
Selenium and Cucumber Selenium Conf 2011
 
WAI-ARIA - an introduction to accessible rich internet applications (1 day wo...
WAI-ARIA - an introduction to accessible rich internet applications (1 day wo...WAI-ARIA - an introduction to accessible rich internet applications (1 day wo...
WAI-ARIA - an introduction to accessible rich internet applications (1 day wo...
 
ARIA Serious
ARIA SeriousARIA Serious
ARIA Serious
 
Refactoring Fat Models: Trying to be a Software Engineer
Refactoring Fat Models: Trying to be a Software EngineerRefactoring Fat Models: Trying to be a Software Engineer
Refactoring Fat Models: Trying to be a Software Engineer
 
ARIA Techniques for Accessible Web Forms
ARIA Techniques for Accessible Web FormsARIA Techniques for Accessible Web Forms
ARIA Techniques for Accessible Web Forms
 
WAI-ARIA An introduction to Accessible Rich Internet Applications / CSS Minsk...
WAI-ARIA An introduction to Accessible Rich Internet Applications / CSS Minsk...WAI-ARIA An introduction to Accessible Rich Internet Applications / CSS Minsk...
WAI-ARIA An introduction to Accessible Rich Internet Applications / CSS Minsk...
 
WAI-ARIA An introduction to Accessible Rich Internet Applications / JavaScrip...
WAI-ARIA An introduction to Accessible Rich Internet Applications / JavaScrip...WAI-ARIA An introduction to Accessible Rich Internet Applications / JavaScrip...
WAI-ARIA An introduction to Accessible Rich Internet Applications / JavaScrip...
 
Testing For Web Accessibility
Testing For Web AccessibilityTesting For Web Accessibility
Testing For Web Accessibility
 
What is wrong with Jira? My top 20 for 2020.
What is wrong with Jira?  My top 20 for 2020.What is wrong with Jira?  My top 20 for 2020.
What is wrong with Jira? My top 20 for 2020.
 
PHPConf.asia 2016 - BDD with Behat for Beginners
PHPConf.asia 2016 - BDD with Behat for BeginnersPHPConf.asia 2016 - BDD with Behat for Beginners
PHPConf.asia 2016 - BDD with Behat for Beginners
 
Documenting APIs: Sample Code and More (with many pictures of cats)
Documenting APIs: Sample Code and More (with many pictures of cats)Documenting APIs: Sample Code and More (with many pictures of cats)
Documenting APIs: Sample Code and More (with many pictures of cats)
 
What Is Hobo ?
What Is Hobo ?What Is Hobo ?
What Is Hobo ?
 
Automated Acceptance Tests & Tool choice
Automated Acceptance Tests & Tool choiceAutomated Acceptance Tests & Tool choice
Automated Acceptance Tests & Tool choice
 
[drupalday2017] - Behat per Drupal: test automatici e molto di più
[drupalday2017] - Behat per Drupal: test automatici e molto di più[drupalday2017] - Behat per Drupal: test automatici e molto di più
[drupalday2017] - Behat per Drupal: test automatici e molto di più
 
Ruby On Rails Tutorial
Ruby On Rails TutorialRuby On Rails Tutorial
Ruby On Rails Tutorial
 
Rey Bango - HTML5: polyfills and shims
Rey Bango -  HTML5: polyfills and shimsRey Bango -  HTML5: polyfills and shims
Rey Bango - HTML5: polyfills and shims
 
Web Accessibility for the 21st Century
Web Accessibility for the 21st CenturyWeb Accessibility for the 21st Century
Web Accessibility for the 21st Century
 

Recently uploaded

Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...panagenda
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024Lorenzo Miniero
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераMark Opanasiuk
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101vincent683379
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...CzechDreamin
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...FIDO Alliance
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform EngineeringMarcus Vechiato
 
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FIDO Alliance
 
Using IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandUsing IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandIES VE
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftshyamraj55
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfFIDO Alliance
 
State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!Memoori
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfFIDO Alliance
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...FIDO Alliance
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessUXDXConf
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Patrick Viafore
 
ECS 2024 Teams Premium - Pretty Secure
ECS 2024   Teams Premium - Pretty SecureECS 2024   Teams Premium - Pretty Secure
ECS 2024 Teams Premium - Pretty SecureFemke de Vroome
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentationyogeshlabana357357
 
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfUK Journal
 

Recently uploaded (20)

Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
 
WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024WebRTC and SIP not just audio and video @ OpenSIPS 2024
WebRTC and SIP not just audio and video @ OpenSIPS 2024
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
 
Using IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & IrelandUsing IESVE for Room Loads Analysis - UK & Ireland
Using IESVE for Room Loads Analysis - UK & Ireland
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoft
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
 
State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
ECS 2024 Teams Premium - Pretty Secure
ECS 2024   Teams Premium - Pretty SecureECS 2024   Teams Premium - Pretty Secure
ECS 2024 Teams Premium - Pretty Secure
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentation
 
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
 

ARIA_11_12_Practical_Perspective.pptx

  • 2. HOWDY! Name: Mark Steadman Title: Director, Mobile Accessibility Company: Fidelity Investments Twitter: @Steady5063 Name: Birkir Gunnarsson Title: Team Lead PI Accessibility Company: Fidelity Investments Twitter: @birkir_gun
  • 3. • Before we begin this talk, we must make one thing clear • The number one rule of ARIA you will see is “Don’t use ARIA”. • This could not be farther from the truth. • True statement should be: “Only use ARIA, if there is no equivalent in HTML OR enhancement is needed for HTML content” Word Of Caution
  • 4. • Accessible Rich Internet Applications (ARIA) is a set of roles and attributes that define ways to make web content and web applications (especially those developed with JavaScript) more accessible to people with disabilities. – MDN web docs • Was made to help fill in the gaps of semantic and native HTML and enhance accessibility of it. Quick Intro to ARIA <h1> ARIA-Pressed Example </h1> <button class="btn" id="buttonOne">Press me please!</button> <button class="btn" id="buttonTwo” aria-pressed=“true”>No press me!</button>
  • 6. How Useful is Your ARIA? • When looking at should we use ARIA or not, we need to think about the end user • Would using ARIA: • Enhance the user experience? • Add ESSENTIAL value to the item in question? • Is there native HTML that is easier to do this with? <div class="btn" role="button" tabindex="0" aria-label="my button">My Button</div> <button class="btn">My Button</button> <label for="name">Name:</label> <input id="name" type="text" aria-describedby="helpText"/> <span id="helpText">This is your full legal name, including middle</span>
  • 7. Introducing The ARIA-na Grande Scale!
  • 8. Conditions For Rating Scale • We consider ARIA role or attribute to be effective if it meets 3 conditions • It addresses a common problem that cannot be easily addressed using HTML markup. • It must be understood and applied correctly by developers. • In order to conform to WCAG it must be accessibility supported.
  • 9. Point Scale For Rating • We rate the usefulness of individual ARIA 1.1 roles/attributes on a 5-point scale. • A rating of 4 or 5 means use the role/attribute, at least cautiously with user agent testing. • A rating of 3 means use the role/attribute as soon as assistive technology support catches up. • A rating of 2 means we can imagine needing to use the role/attribute but have not found an actual scenario yet, or I don’t expect assistive technology support for it in the foreseeable future. • A rating of 1 means we don’t understand why I would ever need to use the role/attribute
  • 10. Role Name Rating Reasoning Table/Cell 4/5 Can build an entire table from <div>, imagine that. It is well supported across screen readers too. None 1.5/5 Repeat of ‘presentation’. Why add a role that does the same thing? Searchbox 2/5 No real explanation for how it behaves different from a regular text input. There's already a search landmark if you want to identify it Switch 3/5 Good support. However, no value added that a checkbox or toggle button couldn’t do Figure 1/5 the <figure> element is mapped to a group role in most screen readers, so a figure role isn't going to change anything, why not just use role="group" and aria- label="figure" Feed 3/5 Supported okay. Has some value where live streamed items can be announced but is a bit wonky in use. Definition/Term 1.5/5 Can be done in HTML, however neither are truly well supported ARIA 1.1 Roles
  • 11. Attribute Name Rating Reasoning aria-modal 5/5 Solves an otherwise impossible problem! Hides all background content and keeps it focus in the modal aria-current 4.5/5 excellent, easy, and all round compatible way to indicate select element in a group of elements, full support. aria-placeholder 1/5 placeholder is a bad pattern to begin with, why encourage it in ARIA? aria-colcount/aria-rowcount 2.5/5 Use case is few and far between. Has support but when is it truly needed? aria-colindex/aria-rowindex 2.5/5 Same as rolcount/rowcount aria-rowspan/aria-colspan 2/5 Currently little to no support. aria-keyshortcuts 2/5 Little support. Truly needed for sighted keyboard users aria-roledescription 2.5/5 Good support. Works well with actionable elements, but not with grouping elements. aria-errormessage 3.5/5 Solves a very real problem. Support is growing rapidly aria-details 3/5 Connecting element to another element that describes it is a real problem. Support is just not there yet. aria-haspopup 2.5/5 Good idea on paper, but very little support yet. ARIA 1.1 Attributes
  • 12. • aria-errormessage: • Why: You have can connect errormessage to field in error with ease! • Can HTML do it?: No.You can do this using the aria-describedby attribute, but there is a catch. If you point aria-describedby at an element, its content gets announced regardless of how the element is hidden. • Example: https://codepen.io/Wildebrew/pen/RyeGZw • aria-modal • Why: You have a modal dialog and you need to lock in keyboard focus in it. • Can HTML do it?: No way to do it in HTML! <dialog> has come a long way but still has its shortcomings • Example: https://codepen.io/Wildebrew/pen/LexQQr ARIA 1.1 - Best
  • 14. ARIA 1.1 - Best • aria-current: • Why: You have a group of items, one of them is selected visually, but you need something to indicate it programmatically. • Can HTML do it?: Short of hacks with visually hidden text or the title attribute, no. • Example: https://codepen.io/markSteady/pen/yLxpoZx
  • 16. • role=‘definition’ • Why: It has very little no support, and its usage is almost none. • Can HTML do it?: Can be done in HTML, however neither are truly well supported • Example: https://codepen.io/markSteady/pen/KKxZvOx • role=‘none’: • Why: It is the same thing as presentation. Made to cause less confusion • Can HTML do it?: No, although just a <div> can essentially be it. • Example: https://codepen.io/markSteady/pen/gOdoGOR ARIA 1.1 -Worst
  • 17. • aria-placeholder: • Why: placeholder is a bad pattern to begin with, why encourage it in ARIA? It isn’t support hardly at all too. • Can HTML do it?: Yes. However, it is a pattern that is not something we want to encourage • Example: https://codepen.io/markSteady/pen/MWqrEYL • searchbox: • Why: No real explanation for how it behaves different from a regular text input. There's already a search landmark if you want to identify it • Can HTML do it?: Yes you can achieve this with input and type=“search” • Example: https://codepen.io/markSteady/pen/eYLyGpa ARIA 1.1 -Worst
  • 18. ARIA 1.1 – Worst Coding Samples <label for="semantic">Input Search Example</label> <input id="semantic" type=”search"/> <label id=”custom”> Custom search input</label> <div contenteditable role="searchbox” aria-labelledby=”custom”> Search here yo </div> Input Search Good/Bad <label for="semantic">Input Placeholder Example</label> <input id="semantic" type=”text" placeholder="I did this in HTML"/> <label id=”custom">Input ARIA Placeholder</label> <div id="aria” contenteditable role="textbox” aria-labelledby=”custom” aria-placeholder="I did this with ARIA">I did this with ARIA</div> Input Placeholder Good/Bad
  • 19. • Use Automated Tools • Using automated tools allows for quick and effective way to check if the ARIA is properly implemented • Does it catch everything? Absolutely not, but the basic issues with implementing can be! • Tools to use • WAVE • Can see the ARIA attributes/roles used on page • Can also see potential misuses • Axe Devtools Extension • 16 hard ARIA checks • 4 Best practices checks • See the rules here: https://github.com/dequelabs/axe-core/blob/develop/doc/rule-descriptions.md Validating and Testing Your ARIA
  • 20. • Using ARIA authoring practices in tandem A11ySupport.io • Don’t like the support you get for an ARIA attribute? Open an issue! • https://github.com/nvaccess/nvda/issues • https://github.com/FreedomScientific/VFO-standards-support/issues Validating and Testing Your ARIA cont.
  • 21. • ARIA 1.2 • Didn't add much, seems to be focused on parity with HTML • Adds smart restrictions and semantics that make them much easier to validate with automated tools • Simplifies some overly complex patterns e.g. combobox • Future ask for ARIA • Continue to build for gaps, not for bad development practices Looking To The Future 1.2 and Beyond
  • 22. ONE ASK BEFORE WE GO…. • Do not over do it and keep it simple • HTML where you can • ARIA authoring practices • A11ysupport.io • Slay Complexity • Do not overthink the development of components • Use the tools available when needed to help fill in the gaps with ARIA

Editor's Notes

  1. Video Description: Demoing the usage of aria-pressed. There are two buttons present that says “press me” and “no press me”, as the user toggles there them with a screen reader they select one and the announce changes to pressed.
  2. Video Description