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

Designing, Developing & Testing for Accessibility
Designing, Developing & Testing for AccessibilityDesigning, Developing & Testing for Accessibility
Designing, Developing & Testing for AccessibilityEric Malcolm
 
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
 
Accessible Design Presentation
Accessible Design PresentationAccessible Design Presentation
Accessible Design PresentationTopher Kanyuga
 
Understanding Web Accessibility
Understanding Web AccessibilityUnderstanding Web Accessibility
Understanding Web AccessibilityAndrea Dubravsky
 
Accessibility Workshop
Accessibility WorkshopAccessibility Workshop
Accessibility WorkshopLar Veale
 
What is accessibility?
What is accessibility?What is accessibility?
What is accessibility?Russ Weakley
 
Design for accessibility
Design for accessibilityDesign for accessibility
Design for accessibilityYogeshDaphane
 
ADA Compliance and Website Accessibility
ADA Compliance and Website AccessibilityADA Compliance and Website Accessibility
ADA Compliance and Website AccessibilitySilverTech
 
Understanding and Supporting Web Accessibility
Understanding and Supporting Web AccessibilityUnderstanding and Supporting Web Accessibility
Understanding and Supporting Web AccessibilityRachel Cherry
 
Digital accessibility 101
Digital accessibility 101Digital accessibility 101
Digital accessibility 101Intopia
 
Accessibility testing kailash 26_nov_ 2010
Accessibility testing kailash 26_nov_ 2010Accessibility testing kailash 26_nov_ 2010
Accessibility testing kailash 26_nov_ 2010Kailash More
 
Web Accessibility: A Shared Responsibility
Web Accessibility: A Shared ResponsibilityWeb Accessibility: A Shared Responsibility
Web Accessibility: A Shared ResponsibilityJoseph Dolson
 
Website Accessibility
Website AccessibilityWebsite Accessibility
Website AccessibilityNishan Bose
 

What's hot (20)

Web Accessibility
Web AccessibilityWeb Accessibility
Web Accessibility
 
Designing, Developing & Testing for Accessibility
Designing, Developing & Testing for AccessibilityDesigning, Developing & Testing for Accessibility
Designing, Developing & Testing for Accessibility
 
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"
 
Accessible Design Presentation
Accessible Design PresentationAccessible Design Presentation
Accessible Design Presentation
 
Web content accessibility
Web content accessibilityWeb content accessibility
Web content accessibility
 
Web Accessibility
Web AccessibilityWeb Accessibility
Web Accessibility
 
Understanding Web Accessibility
Understanding Web AccessibilityUnderstanding Web Accessibility
Understanding Web Accessibility
 
Accessibility Workshop
Accessibility WorkshopAccessibility Workshop
Accessibility Workshop
 
Accessibilitytesting public
Accessibilitytesting publicAccessibilitytesting public
Accessibilitytesting public
 
What is accessibility?
What is accessibility?What is accessibility?
What is accessibility?
 
Design for accessibility
Design for accessibilityDesign for accessibility
Design for accessibility
 
WCAG
WCAGWCAG
WCAG
 
ADA Compliance and Website Accessibility
ADA Compliance and Website AccessibilityADA Compliance and Website Accessibility
ADA Compliance and Website Accessibility
 
Understanding and Supporting Web Accessibility
Understanding and Supporting Web AccessibilityUnderstanding and Supporting Web Accessibility
Understanding and Supporting Web Accessibility
 
Web Accessibility Testing With Axe
Web Accessibility Testing With AxeWeb Accessibility Testing With Axe
Web Accessibility Testing With Axe
 
Digital accessibility 101
Digital accessibility 101Digital accessibility 101
Digital accessibility 101
 
Accessibility testing kailash 26_nov_ 2010
Accessibility testing kailash 26_nov_ 2010Accessibility testing kailash 26_nov_ 2010
Accessibility testing kailash 26_nov_ 2010
 
Web Accessibility
Web AccessibilityWeb Accessibility
Web Accessibility
 
Web Accessibility: A Shared Responsibility
Web Accessibility: A Shared ResponsibilityWeb Accessibility: A Shared Responsibility
Web Accessibility: A Shared Responsibility
 
Website Accessibility
Website AccessibilityWebsite Accessibility
Website 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 / 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
 
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
 
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 / 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...
 
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...
 
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

APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 

Recently uploaded (20)

APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 

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