SlideShare ist ein Scribd-Unternehmen logo
1 von 27
Downloaden Sie, um offline zu lesen
Shift-Left Accessibility
Sagar Barbhaya, Intuit Accessibility
CSUN 2018
Twitter handle: @sagarbb160

Linkedin URL: https://www.linkedin.com/in/sagarbarbhaya/
Key Factors
• Software Development lifecycle
• Large list of competing priorities when building
for the web
• Accessibility, performance, security - calls for
automation
- If we look at SDLC for any application, there are a lot of things that need to be taken care of as a part of the development.

- Some of these include performance, security, accessibility. 

- These should ideally be handled as a part of the dev cycle but generally are an after thought. This is where the problem starts. 

- We shall be seeing what problems this
causes and talk about one very important
strategy that helps us immensely in getting
around this.
Shifting Left?
• Automated testing - what is it?
• Is Automated testing self sufficient?
• Build accessibility into your UI code
• Document features for teams
• Prevent regressions in quality from deploying to
production.
Automated testing is a great way to start weaving accessibility into your website, with the ultimate goal of shifting left more and more towards the UX and discovery
process

Its not fully self sufficient but it’s a valuable way to address easy wins and prevent basic fails. Free humans up for more complex tasks. determining whether an image is
an image of text or whether an image contains important text information.
How Much Does It Actually
Cost To Fix A Bug?
“ At first, the cost of fixing a bug at the requirements stage is nominal, when
everything is on the drawing board. But as the software moves along in its life
cycle the cost of fixing a bug increases radically. We start at 1 times when we
are at the initial development stage when a bug is no more than a change in
notion. But at the design stage, the relative cost is 5 times what it was
compared to the requirements stage, and then ten times what it was when it
becomes code and on this goes until it the relative cost of a bug fix is 150
times what it was originally. Source “
I am going to be quoting some folks who have actually sat down and calculated the cost of fixing a bug later in the Software Development LifeCycle.

http://extreme-accessibility.karlgroves-sandbox.com/
More coming -
Hidden costs !
• Bug triage meetings
• Stumbling over same known issues again and
again.
There is a lot of complication and layers when it comes to SDLC without shift left. We shall see in the next slide how a bad SDLC looks in terms of fixing bugs and you
shall see the costs associated with each of these bad steps.
Development
“Complete”
QA tests,
finds and
opens bug
Bug is
assigned by
QA manager
Developer
reviews bug
Developer
reproduces
bug
Developer
fixes bug
Bug assigned
back to QA
QA re-verifies
bug
QA confirms
bug fixed -
closes it
$60 $75
$91.25
$205
$188.75 $123.75
$250 $265
Graph Explaining Shift Left
L0, L1, L2 are levels of activities that happen one after the other and show the amount of time and cost that they incur without shift left.

By shifting left, these activities are moved to lower cost delivery channels, which optimizes costs and enables more expensive resources to focus on work that can’t be
performed by less skilled labor.

In addition to reducing costs, doing this properly has the benefits of reducing both the time and total effort associated with handling requests and dealing with issues—in
addition to improving both customer satisfaction and service quality.
Development
“Incomplete”
Alongside
development,
testing by
engineers
Bugs found dealt
with as a part of
original story
QA reviews
bug
Iteration over
fix and test
cycle
Developer
and QA sign
off together
Development
NOW
COMPLETE !
The right way to triage SDLC
Types Of Shift Left Testing
• Traditional Shift Left Testing
• Incremental Shift Left Testing
• Agile/DevOps Shift Left Testing
• Model-Based Shift Left Testing
https://en.wikipedia.org/wiki/Shift_left_testing
Statistics On Software
Defects
• 56% of all software defects emerge during the
requirement phase
• 27% in the design phase
• 7% during the development phase.
Critical to start testing way ahead in the Software Development Lifecycle.

Reference - https://www.bmc.com/blogs/what-is-shift-left-shift-left-testing-explained/
Automated Testing Options
• Deque’s aXe Integrations:
• Selenium java
• WebDriverJS
• React-axe
• Lighthouse (aXe + mobile readiness)
• Android Checks - Espresso
• Apple Accessibility Inspector
Grunt + HTML CodeSniffer: https://github.com/yargalot/grunt-accessibility 

AccessSniff https://github.com/yargalot/AccessSniff
What Is aXe?
•WorldSpace aXe (The Accessibility Engine) is
free, open-source JavaScript accessibility rules
library.
•It was developed to be fast and to return zero
false errors or duplicate results, and it is available
as a GitHub repository, browser plugin, or
framework integration.
Reference - https://www.deque.com/axe/
Axe integration with
selenium java
@Test(groups = { "AxeCore" }, dataProvider = "from-json")
public void axeCoreTest(WebDriver driver) throws Exception {
final String url = "http://fyvr.net/acme/content-bad.html";
driver.get(url);
JSONObject responseJSON = new AXE.Builder(driver,
scriptUrl).analyze();
JSONArray violations =
responseJSON.getJSONArray("violations");
if (violations.length() == 0) {
assertTrue("No violations found", true);
} else {
AXE.writeResults(fileName, responseJSON);
assertTrue(AXE.report(violations), false);
}
}
What is axe-webdriverjs?

An open source library that injects axe-core into Selenium Webdriver instances
DEMO
• VIDEO
Android Accessibility Testing
WHAT IS ESPRESSO?
• Espresso is a testing framework for Android to make it
easy to write reliable user interface tests.
• Google released the Espresso framework in Oct. 2013.
Since its 2.0 release Espresso is part of the Android
Support Repository.
• Espresso automatically synchronizes your test actions
with the user interface of your application.
The framework also ensures that your activity is started before the tests run. It also let the test wait until all observed background activities have finished.

It is intended to test a single application but can also be used to test across applications. If used for testing outside your application, you can only perform black box
testing, as you cannot access the classes outside of your application
Accessibility Test Framework for Android
• Consists of rules around accessibility to help
evaluate different applications.
• Any team using Espresso for Android
Automation can integrate this library easily
into their existing automation suite!
https://github.com/google/Accessibility-Test-Framework-for-Android
React’s Accessibility Code
Linter
• What is a code linter and why would I use it?
• How do I get the React accessibility linter into
my project?
• What are the different ways I can use the code
linter?
Going to cover these questions in the next slides

JavaScript, being a dynamic and loosely-typed language, is especially prone to developer error. Without the benefit of a compilation process, JavaScript code is typically
executed in order to find syntax or other errors. Linting tools like ESLint allow developers to discover problems with their JavaScript code without executing it.
What is a11y plugin?
• In the simplest terms, a utility which helps you
write accessible code.
• It’s a plugin to be used with ESLint
• Reports issues directly in your development
terminal.
• Can also be hooked to your build systems.
a very popular and well made JavaScript code linter which is supported by all the popular code editors of today.
Installation and Usage of
eslint a11y plugin
• Name - eslint-plugin-jsx-a11y
• Easy installation - npm install eslint --save-dev
• Easy usage - {
"plugins": [
"jsx-a11y"
]
}
• You can configure the rules you want too !
This avoids the overhead of the console bombarding with errors. We can limit it to showing us only the critical one’s and others can be warnings.
DEMO - React A11y Website
• REACT ACCESSIBLE DEVELOPMENT
Build Time Warnings
./src/AboutBad.js
Line 150: img elements must have an alt prop, either with
meaningful text, or an empty string for decorative images
Line 152: Invalid alt value for img. Use alt="" for
presentational images
Line 159: <input> elements with type="image" must have a text
alternative through the `alt`, `aria-label`, or `aria-labelledby`
prop
Line 177: img elements must have an alt prop, either with
meaningful text, or an empty string for decorative images
Line 179: Each area of an image map must have a text alternative
through the `alt`, `aria-label`, or `aria-labelledby` prop Anchors
must have content and the content must be accessible by a screen
reader
Line 198: Do not use <blink> elements as they can create visual
Testing Tools
• Six Accessibility Testing Tools for Your Toolbox -
1. WAVE
2. aXe
3. Tenon
4. a11yTools
5. tota11y
6. HTML_CodeSniffer
• Do check them out !
These are five of the accessibility testing tools that I like to use on a regular basis for accessibility testing and reporting. Each tool has some pros and cons and each has
certain accessibility issues they’re great at identifying.

1. WAVE browser extensions are much more powerful than the WAVE website because you won’t be able to use the online WAVE behind password protected websites
and sometimes the online version does not work on very complex websites. The WAVE extensions work behind a firewall, are faster to run tests, and handle complex
websites.

2. The most popular way aXe is used is likely via the Chrome and Firefox Extensions that provide a user interface for the accessibility errors output.

3. Tenon:

4. 	 a11y tools No Chrome or Firefox extension. -biggest con

5. 	 tota11y - Headings testing tool is awesome for testing incorrect heading levels and nesting or not starting page with an H1 element. but ARIA Landmarks testing
tool seems less useful than some others.

6. 	 pros - Iframe testing, Tests for duplicate ID attribute values.
Concluding notes
• Automation is key.
• Encourage use of keyboard testing as a tool.
• Incorporate linters to ease accessible
development.
• Shifting left to go the right way !
Key Takeaways
1. Identify and Plan Testing Lifecycle
2. Integrate Development and Project Management
Process with Testing
3. Define Quality Standards & Controls for all SDLC stages
4. Create Process and Operation driven test cases and
framework
5. Induce Developers to Code with Testability in Mind
6. Define Continuous Feedback Mechanism
Links for research
• https://24ways.org/2017/automating-your-accessibility-tests/
• https://24ways.org/2014/integrating-contrast-checks-in-your-web-workflow/
• https://www.24a11y.com/2017/reacts-accessibility-code-linter/
• https://www.24a11y.com/2017/accessibility-testing-tools-desktop-mobile-websites/
• https://www.24a11y.com/2017/build-cloud-hosted-accessibility-testing-windows-computer-
using-amazon-workspaces/
• https://www.24a11y.com/2017/writing-automated-tests-accessibility/
• https://www.npmjs.com/package/eslint-plugin-jsx-a11y
• https://www.deque.com/product/axe/
• https://www.cherwell.com/blog/want-to-shift-left-with-itsm-change-management
• http://extreme-accessibility.karlgroves-sandbox.com/
@sagarbb160

Weitere ähnliche Inhalte

Was ist angesagt?

[Webinar] Continuous Testing Done Right: Test Automation at the World's Leadi...
[Webinar] Continuous Testing Done Right: Test Automation at the World's Leadi...[Webinar] Continuous Testing Done Right: Test Automation at the World's Leadi...
[Webinar] Continuous Testing Done Right: Test Automation at the World's Leadi...
Applitools
 
Modern Functional Test Automation Through Visual AI - webinar w/ Raja Rao
Modern Functional Test Automation Through Visual AI - webinar w/ Raja Rao Modern Functional Test Automation Through Visual AI - webinar w/ Raja Rao
Modern Functional Test Automation Through Visual AI - webinar w/ Raja Rao
Applitools
 

Was ist angesagt? (20)

[Webinar] Continuous Testing Done Right: Test Automation at the World's Leadi...
[Webinar] Continuous Testing Done Right: Test Automation at the World's Leadi...[Webinar] Continuous Testing Done Right: Test Automation at the World's Leadi...
[Webinar] Continuous Testing Done Right: Test Automation at the World's Leadi...
 
Automated Testing – Web, Mobile, Desktop - Challenges and Successes
Automated Testing – Web, Mobile, Desktop - Challenges and SuccessesAutomated Testing – Web, Mobile, Desktop - Challenges and Successes
Automated Testing – Web, Mobile, Desktop - Challenges and Successes
 
How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)
 
Real Devices or Emulators: Wen to use What for Automated Testing
Real Devices or Emulators: Wen to use What for Automated TestingReal Devices or Emulators: Wen to use What for Automated Testing
Real Devices or Emulators: Wen to use What for Automated Testing
 
Test Automation With Cucumber JVM, Selenium, and Mocha
Test Automation With Cucumber JVM, Selenium, and MochaTest Automation With Cucumber JVM, Selenium, and Mocha
Test Automation With Cucumber JVM, Selenium, and Mocha
 
Accessibility Testing Tools for Developers - Seattle Code Camp
Accessibility Testing Tools for Developers - Seattle Code CampAccessibility Testing Tools for Developers - Seattle Code Camp
Accessibility Testing Tools for Developers - Seattle Code Camp
 
Make the Shift from Manual to Automation with Open Source
Make the Shift from Manual to Automation with Open SourceMake the Shift from Manual to Automation with Open Source
Make the Shift from Manual to Automation with Open Source
 
Colorful world-of-visual-automation-testing-latest
Colorful world-of-visual-automation-testing-latestColorful world-of-visual-automation-testing-latest
Colorful world-of-visual-automation-testing-latest
 
How to Get Started with Cypress
How to Get Started with CypressHow to Get Started with Cypress
How to Get Started with Cypress
 
Selenium Camp 2016 - Kiev, Ukraine
Selenium Camp 2016 -  Kiev, UkraineSelenium Camp 2016 -  Kiev, Ukraine
Selenium Camp 2016 - Kiev, Ukraine
 
Web Application Testing with Selenium
Web Application Testing with Selenium Web Application Testing with Selenium
Web Application Testing with Selenium
 
Selenium conference, 2016
Selenium conference, 2016Selenium conference, 2016
Selenium conference, 2016
 
Session on Testing Activities in Continuous Integration and Delivery as an Ex...
Session on Testing Activities in Continuous Integration and Delivery as an Ex...Session on Testing Activities in Continuous Integration and Delivery as an Ex...
Session on Testing Activities in Continuous Integration and Delivery as an Ex...
 
Implementing Test Automation in Agile Projects
Implementing Test Automation in Agile ProjectsImplementing Test Automation in Agile Projects
Implementing Test Automation in Agile Projects
 
Selenium + Specflow
Selenium + SpecflowSelenium + Specflow
Selenium + Specflow
 
Modern Functional Test Automation Through Visual AI - webinar w/ Raja Rao
Modern Functional Test Automation Through Visual AI - webinar w/ Raja Rao Modern Functional Test Automation Through Visual AI - webinar w/ Raja Rao
Modern Functional Test Automation Through Visual AI - webinar w/ Raja Rao
 
What’s new in VS 2015 and ALM 2015
What’s new in VS 2015 and ALM 2015What’s new in VS 2015 and ALM 2015
What’s new in VS 2015 and ALM 2015
 
Myth vs Reality: Understanding AI/ML for QA Automation - w/ Jonathan Lipps
Myth vs Reality: Understanding AI/ML for QA Automation - w/ Jonathan LippsMyth vs Reality: Understanding AI/ML for QA Automation - w/ Jonathan Lipps
Myth vs Reality: Understanding AI/ML for QA Automation - w/ Jonathan Lipps
 
API Design Principles for Accelerated Development
API Design Principles for Accelerated DevelopmentAPI Design Principles for Accelerated Development
API Design Principles for Accelerated Development
 
Visual Studio 2010 Testing for Developers
Visual Studio 2010 Testing for DevelopersVisual Studio 2010 Testing for Developers
Visual Studio 2010 Testing for Developers
 

Ähnlich wie Shift left-csun-sagar-barbhaya

Ähnlich wie Shift left-csun-sagar-barbhaya (20)

4&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-5
4&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-54&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-5
4&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-5
 
Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...
Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...
Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...
 
Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...
Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...
Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...
 
Learn Selenium - Online Guide
Learn Selenium - Online GuideLearn Selenium - Online Guide
Learn Selenium - Online Guide
 
5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation
 
DevOps Presentation.pptx
DevOps Presentation.pptxDevOps Presentation.pptx
DevOps Presentation.pptx
 
Session on evaluation of DevSecOps
Session on evaluation of DevSecOpsSession on evaluation of DevSecOps
Session on evaluation of DevSecOps
 
What is Selenium Introduction to Selenium Testing.pptx
What is Selenium Introduction to Selenium Testing.pptxWhat is Selenium Introduction to Selenium Testing.pptx
What is Selenium Introduction to Selenium Testing.pptx
 
DevOps Overview in my own words
DevOps Overview in my own wordsDevOps Overview in my own words
DevOps Overview in my own words
 
Topic production code
Topic production codeTopic production code
Topic production code
 
Software Testing Tools Training
Software Testing Tools TrainingSoftware Testing Tools Training
Software Testing Tools Training
 
DevOps - Continuous Integration, Continuous Delivery - let's talk
DevOps - Continuous Integration, Continuous Delivery - let's talkDevOps - Continuous Integration, Continuous Delivery - let's talk
DevOps - Continuous Integration, Continuous Delivery - let's talk
 
Automated Testing Using Selenium
Automated Testing Using SeleniumAutomated Testing Using Selenium
Automated Testing Using Selenium
 
Application Lifecycle Management
Application Lifecycle ManagementApplication Lifecycle Management
Application Lifecycle Management
 
Practical DevOps & Continuous Delivery – A Webinar to learn in depth on DevO...
Practical DevOps & Continuous Delivery –  A Webinar to learn in depth on DevO...Practical DevOps & Continuous Delivery –  A Webinar to learn in depth on DevO...
Practical DevOps & Continuous Delivery – A Webinar to learn in depth on DevO...
 
DevOps Engineering.pptx
DevOps Engineering.pptxDevOps Engineering.pptx
DevOps Engineering.pptx
 
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austinDev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
 
Selenium ~ Uncommon but practical use cases
Selenium ~ Uncommon but practical use cases Selenium ~ Uncommon but practical use cases
Selenium ~ Uncommon but practical use cases
 
Tools for Software Testing
Tools for Software TestingTools for Software Testing
Tools for Software Testing
 
Different phases of accessibility testing
Different phases of accessibility testing Different phases of accessibility testing
Different phases of accessibility testing
 

Kürzlich hochgeladen

%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
masabamasaba
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 

Kürzlich hochgeladen (20)

tonesoftg
tonesoftgtonesoftg
tonesoftg
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 

Shift left-csun-sagar-barbhaya

  • 1. Shift-Left Accessibility Sagar Barbhaya, Intuit Accessibility CSUN 2018 Twitter handle: @sagarbb160 Linkedin URL: https://www.linkedin.com/in/sagarbarbhaya/
  • 2. Key Factors • Software Development lifecycle • Large list of competing priorities when building for the web • Accessibility, performance, security - calls for automation - If we look at SDLC for any application, there are a lot of things that need to be taken care of as a part of the development. - Some of these include performance, security, accessibility. - These should ideally be handled as a part of the dev cycle but generally are an after thought. This is where the problem starts. - We shall be seeing what problems this causes and talk about one very important strategy that helps us immensely in getting around this.
  • 3. Shifting Left? • Automated testing - what is it? • Is Automated testing self sufficient? • Build accessibility into your UI code • Document features for teams • Prevent regressions in quality from deploying to production. Automated testing is a great way to start weaving accessibility into your website, with the ultimate goal of shifting left more and more towards the UX and discovery process Its not fully self sufficient but it’s a valuable way to address easy wins and prevent basic fails. Free humans up for more complex tasks. determining whether an image is an image of text or whether an image contains important text information.
  • 4. How Much Does It Actually Cost To Fix A Bug? “ At first, the cost of fixing a bug at the requirements stage is nominal, when everything is on the drawing board. But as the software moves along in its life cycle the cost of fixing a bug increases radically. We start at 1 times when we are at the initial development stage when a bug is no more than a change in notion. But at the design stage, the relative cost is 5 times what it was compared to the requirements stage, and then ten times what it was when it becomes code and on this goes until it the relative cost of a bug fix is 150 times what it was originally. Source “ I am going to be quoting some folks who have actually sat down and calculated the cost of fixing a bug later in the Software Development LifeCycle. http://extreme-accessibility.karlgroves-sandbox.com/
  • 5. More coming - Hidden costs ! • Bug triage meetings • Stumbling over same known issues again and again. There is a lot of complication and layers when it comes to SDLC without shift left. We shall see in the next slide how a bad SDLC looks in terms of fixing bugs and you shall see the costs associated with each of these bad steps.
  • 6. Development “Complete” QA tests, finds and opens bug Bug is assigned by QA manager Developer reviews bug Developer reproduces bug Developer fixes bug Bug assigned back to QA QA re-verifies bug QA confirms bug fixed - closes it $60 $75 $91.25 $205 $188.75 $123.75 $250 $265
  • 7. Graph Explaining Shift Left L0, L1, L2 are levels of activities that happen one after the other and show the amount of time and cost that they incur without shift left. By shifting left, these activities are moved to lower cost delivery channels, which optimizes costs and enables more expensive resources to focus on work that can’t be performed by less skilled labor. In addition to reducing costs, doing this properly has the benefits of reducing both the time and total effort associated with handling requests and dealing with issues—in addition to improving both customer satisfaction and service quality.
  • 8. Development “Incomplete” Alongside development, testing by engineers Bugs found dealt with as a part of original story QA reviews bug Iteration over fix and test cycle Developer and QA sign off together Development NOW COMPLETE ! The right way to triage SDLC
  • 9. Types Of Shift Left Testing • Traditional Shift Left Testing • Incremental Shift Left Testing • Agile/DevOps Shift Left Testing • Model-Based Shift Left Testing https://en.wikipedia.org/wiki/Shift_left_testing
  • 10. Statistics On Software Defects • 56% of all software defects emerge during the requirement phase • 27% in the design phase • 7% during the development phase. Critical to start testing way ahead in the Software Development Lifecycle. Reference - https://www.bmc.com/blogs/what-is-shift-left-shift-left-testing-explained/
  • 11.
  • 12. Automated Testing Options • Deque’s aXe Integrations: • Selenium java • WebDriverJS • React-axe • Lighthouse (aXe + mobile readiness) • Android Checks - Espresso • Apple Accessibility Inspector Grunt + HTML CodeSniffer: https://github.com/yargalot/grunt-accessibility AccessSniff https://github.com/yargalot/AccessSniff
  • 13. What Is aXe? •WorldSpace aXe (The Accessibility Engine) is free, open-source JavaScript accessibility rules library. •It was developed to be fast and to return zero false errors or duplicate results, and it is available as a GitHub repository, browser plugin, or framework integration. Reference - https://www.deque.com/axe/
  • 14. Axe integration with selenium java @Test(groups = { "AxeCore" }, dataProvider = "from-json") public void axeCoreTest(WebDriver driver) throws Exception { final String url = "http://fyvr.net/acme/content-bad.html"; driver.get(url); JSONObject responseJSON = new AXE.Builder(driver, scriptUrl).analyze(); JSONArray violations = responseJSON.getJSONArray("violations"); if (violations.length() == 0) { assertTrue("No violations found", true); } else { AXE.writeResults(fileName, responseJSON); assertTrue(AXE.report(violations), false); } } What is axe-webdriverjs? An open source library that injects axe-core into Selenium Webdriver instances
  • 16. Android Accessibility Testing WHAT IS ESPRESSO? • Espresso is a testing framework for Android to make it easy to write reliable user interface tests. • Google released the Espresso framework in Oct. 2013. Since its 2.0 release Espresso is part of the Android Support Repository. • Espresso automatically synchronizes your test actions with the user interface of your application. The framework also ensures that your activity is started before the tests run. It also let the test wait until all observed background activities have finished. It is intended to test a single application but can also be used to test across applications. If used for testing outside your application, you can only perform black box testing, as you cannot access the classes outside of your application
  • 17. Accessibility Test Framework for Android • Consists of rules around accessibility to help evaluate different applications. • Any team using Espresso for Android Automation can integrate this library easily into their existing automation suite! https://github.com/google/Accessibility-Test-Framework-for-Android
  • 18. React’s Accessibility Code Linter • What is a code linter and why would I use it? • How do I get the React accessibility linter into my project? • What are the different ways I can use the code linter? Going to cover these questions in the next slides JavaScript, being a dynamic and loosely-typed language, is especially prone to developer error. Without the benefit of a compilation process, JavaScript code is typically executed in order to find syntax or other errors. Linting tools like ESLint allow developers to discover problems with their JavaScript code without executing it.
  • 19. What is a11y plugin? • In the simplest terms, a utility which helps you write accessible code. • It’s a plugin to be used with ESLint • Reports issues directly in your development terminal. • Can also be hooked to your build systems. a very popular and well made JavaScript code linter which is supported by all the popular code editors of today.
  • 20. Installation and Usage of eslint a11y plugin • Name - eslint-plugin-jsx-a11y • Easy installation - npm install eslint --save-dev • Easy usage - { "plugins": [ "jsx-a11y" ] } • You can configure the rules you want too ! This avoids the overhead of the console bombarding with errors. We can limit it to showing us only the critical one’s and others can be warnings.
  • 21. DEMO - React A11y Website • REACT ACCESSIBLE DEVELOPMENT
  • 22. Build Time Warnings ./src/AboutBad.js Line 150: img elements must have an alt prop, either with meaningful text, or an empty string for decorative images Line 152: Invalid alt value for img. Use alt="" for presentational images Line 159: <input> elements with type="image" must have a text alternative through the `alt`, `aria-label`, or `aria-labelledby` prop Line 177: img elements must have an alt prop, either with meaningful text, or an empty string for decorative images Line 179: Each area of an image map must have a text alternative through the `alt`, `aria-label`, or `aria-labelledby` prop Anchors must have content and the content must be accessible by a screen reader Line 198: Do not use <blink> elements as they can create visual
  • 23. Testing Tools • Six Accessibility Testing Tools for Your Toolbox - 1. WAVE 2. aXe 3. Tenon 4. a11yTools 5. tota11y 6. HTML_CodeSniffer • Do check them out ! These are five of the accessibility testing tools that I like to use on a regular basis for accessibility testing and reporting. Each tool has some pros and cons and each has certain accessibility issues they’re great at identifying. 1. WAVE browser extensions are much more powerful than the WAVE website because you won’t be able to use the online WAVE behind password protected websites and sometimes the online version does not work on very complex websites. The WAVE extensions work behind a firewall, are faster to run tests, and handle complex websites. 2. The most popular way aXe is used is likely via the Chrome and Firefox Extensions that provide a user interface for the accessibility errors output. 3. Tenon: 4. a11y tools No Chrome or Firefox extension. -biggest con 5. tota11y - Headings testing tool is awesome for testing incorrect heading levels and nesting or not starting page with an H1 element. but ARIA Landmarks testing tool seems less useful than some others. 6. pros - Iframe testing, Tests for duplicate ID attribute values.
  • 24. Concluding notes • Automation is key. • Encourage use of keyboard testing as a tool. • Incorporate linters to ease accessible development. • Shifting left to go the right way !
  • 25. Key Takeaways 1. Identify and Plan Testing Lifecycle 2. Integrate Development and Project Management Process with Testing 3. Define Quality Standards & Controls for all SDLC stages 4. Create Process and Operation driven test cases and framework 5. Induce Developers to Code with Testability in Mind 6. Define Continuous Feedback Mechanism
  • 26. Links for research • https://24ways.org/2017/automating-your-accessibility-tests/ • https://24ways.org/2014/integrating-contrast-checks-in-your-web-workflow/ • https://www.24a11y.com/2017/reacts-accessibility-code-linter/ • https://www.24a11y.com/2017/accessibility-testing-tools-desktop-mobile-websites/ • https://www.24a11y.com/2017/build-cloud-hosted-accessibility-testing-windows-computer- using-amazon-workspaces/ • https://www.24a11y.com/2017/writing-automated-tests-accessibility/ • https://www.npmjs.com/package/eslint-plugin-jsx-a11y • https://www.deque.com/product/axe/ • https://www.cherwell.com/blog/want-to-shift-left-with-itsm-change-management • http://extreme-accessibility.karlgroves-sandbox.com/