SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Was ist angesagt?

Accessibility Testing 101
Accessibility Testing 101Accessibility Testing 101
Accessibility Testing 101Patrick Dunphy
 
Web Accessibility: A Shared Responsibility
Web Accessibility: A Shared ResponsibilityWeb Accessibility: A Shared Responsibility
Web Accessibility: A Shared ResponsibilityJoseph Dolson
 
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
 
Understanding Web Accessibility
Understanding Web AccessibilityUnderstanding Web Accessibility
Understanding Web AccessibilityAndrea Dubravsky
 
Web Content Accessibility Guidelines
Web Content Accessibility GuidelinesWeb Content Accessibility Guidelines
Web Content Accessibility GuidelinesPurnimaAgarwal6
 
Digital Accessibility - The Quick Wins
Digital Accessibility - The Quick WinsDigital Accessibility - The Quick Wins
Digital Accessibility - The Quick WinsMedia Access Australia
 
Web accessibility: it’s everyone’s responsibility
Web accessibility: it’s everyone’s responsibilityWeb accessibility: it’s everyone’s responsibility
Web accessibility: it’s everyone’s responsibilityMedia Access Australia
 
ADA Compliance and Website Accessibility
ADA Compliance and Website AccessibilityADA Compliance and Website Accessibility
ADA Compliance and Website AccessibilitySilverTech
 
WCAG 2.1: What You Need to Know About the Most Recent Accessibility Standards
WCAG 2.1: What You Need to Know About the Most Recent Accessibility StandardsWCAG 2.1: What You Need to Know About the Most Recent Accessibility Standards
WCAG 2.1: What You Need to Know About the Most Recent Accessibility StandardsUXPA International
 
WCAG 2.1 and POUR
WCAG 2.1 and POURWCAG 2.1 and POUR
WCAG 2.1 and POURAlena Huang
 
Design for accessibility
Design for accessibilityDesign for accessibility
Design for accessibilityYogeshDaphane
 
A Web for Everyone: Accessibility as a design challenge
A Web for Everyone: Accessibility as a design challengeA Web for Everyone: Accessibility as a design challenge
A Web for Everyone: Accessibility as a design challengeWhitney Quesenbery
 
HTML and Responsive Design
HTML and Responsive Design HTML and Responsive Design
HTML and Responsive Design Mindy McAdams
 

Was ist angesagt? (20)

Web Accessibility
Web AccessibilityWeb Accessibility
Web Accessibility
 
Accessibility Testing 101
Accessibility Testing 101Accessibility Testing 101
Accessibility Testing 101
 
WCAG
WCAGWCAG
WCAG
 
Web Accessibility Testing With Axe
Web Accessibility Testing With AxeWeb Accessibility Testing With Axe
Web Accessibility Testing With Axe
 
Web Accessibility: A Shared Responsibility
Web Accessibility: A Shared ResponsibilityWeb Accessibility: A Shared Responsibility
Web Accessibility: A Shared Responsibility
 
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
 
Bootstrap 5 basic
Bootstrap 5 basicBootstrap 5 basic
Bootstrap 5 basic
 
Accessibility
AccessibilityAccessibility
Accessibility
 
Understanding Web Accessibility
Understanding Web AccessibilityUnderstanding Web Accessibility
Understanding Web Accessibility
 
Web Content Accessibility Guidelines
Web Content Accessibility GuidelinesWeb Content Accessibility Guidelines
Web Content Accessibility Guidelines
 
Digital Accessibility - The Quick Wins
Digital Accessibility - The Quick WinsDigital Accessibility - The Quick Wins
Digital Accessibility - The Quick Wins
 
Web accessibility: it’s everyone’s responsibility
Web accessibility: it’s everyone’s responsibilityWeb accessibility: it’s everyone’s responsibility
Web accessibility: it’s everyone’s responsibility
 
ADA Compliance and Website Accessibility
ADA Compliance and Website AccessibilityADA Compliance and Website Accessibility
ADA Compliance and Website Accessibility
 
WCAG 2.1: What You Need to Know About the Most Recent Accessibility Standards
WCAG 2.1: What You Need to Know About the Most Recent Accessibility StandardsWCAG 2.1: What You Need to Know About the Most Recent Accessibility Standards
WCAG 2.1: What You Need to Know About the Most Recent Accessibility Standards
 
WCAG 2.1 and POUR
WCAG 2.1 and POURWCAG 2.1 and POUR
WCAG 2.1 and POUR
 
Design for accessibility
Design for accessibilityDesign for accessibility
Design for accessibility
 
A Web for Everyone: Accessibility as a design challenge
A Web for Everyone: Accessibility as a design challengeA Web for Everyone: Accessibility as a design challenge
A Web for Everyone: Accessibility as a design challenge
 
HTML and Responsive Design
HTML and Responsive Design HTML and Responsive Design
HTML and Responsive Design
 
Web Accessibility
Web AccessibilityWeb Accessibility
Web Accessibility
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Kürzlich hochgeladen

Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
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
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
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
 
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
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
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
 

Kürzlich hochgeladen (20)

Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
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
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
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
 
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
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
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
 

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

Hinweis der Redaktion

  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