SlideShare a Scribd company logo
1 of 36
Accessibility,
Teamwork & ExtJS: A
Customer Success
Story
Brent Balog – Senior UI Engineer, Innotas by Planview
Sherrill Packebush, PhD – UX Architect, Innotas by Planview
Hadi Rangin – IT Accessibility Specialist, University of Washington
Some Quick Facts
• Almost 1 in 5 people have a disability*
• 8.1 million people have difficulty
seeing (2 million cannot see at all)*
• 19.9 million people have difficulty
lifting or grasping*
• World population is aging**
2
* 2010 US Census ** UN World Population
Prospects
Preview
• How the heck do we get to accessibility?
• So, what does it really mean to be accessible?
• What helped us the most
• Several development tips for you
3
How the Heck do We Get to
Accessibility?
VPAT (Voluntary Product Accessibility Template)
• Self evaluation for conformance to applicable 508 sections
• Checklist for does your application meet these guidelines
• Used for customer RFPs, advising of where we didn’t pass
• Was just a point in time evaluation, not a process to get to accessibility
• Other accessibility issues could creep in as our app
evolved
• We didn’t believe this was sufficient or the best
approach for us…the tail wagging the dog
5
Consulting
• Could perform a thorough evaluation…great!
• Could provide explicit feedback on what changes to make…excellent! But,
- Might actually be another VPAT checklist
- Might not match or be able to apply to ExtJS capabilities
• High rampup time and cost for familiarization with our
application
• Would cost $$$
• Might need additional consulting as our app evolved
• This wasn’t a viable route for us
6
In House (on our Own)
• Created keyboard access guidelines
• Involved our QA team to help us identify issues using WAVE
• We found a LOT of issues, but we weren’t sure what
- Were the most critical and not false positives
- Truly applied to our users
- Were the best approaches to address some of them
- Other issues we were likely missing
• We needed more expertise
7
In House (with Help from our Friends)
• A customer who cared deeply about accessibility, were experts, and willing to help
- Revised the keyboard access guidelines
- Tons better evaluation, triage, and solutions
- But still very time consuming, tedious, and point solutions didn’t make sense
- Luckily a brilliant man asked why we didn’t contact the vendor?
• A vendor who cared deeply about accessibility and was looking for accessibility gurus
- To identify the best solutions at the framework level
- To make not only their product, but their customers successful
• This WORKED! Or is working, it’s a continual process
8
So, what Does it Really Mean to
be Accessible?
Definition of “Accessible”
“Accessible” means a person with a disability is afforded the opportunity to
acquire the same information, engage in the same interactions, & enjoy the
same services as a person without a disability in an equally effective & equally
integrated manner, with substantially equivalent ease of use. The person with a
disability must be able to obtain the information as fully, equally &
independently as a person without a disability.
10
IT Accessibility Standards
• World Wide Web Consortium (W3C)
- Web Content Accessibility Guidelines 1.0 (1999)
- Web Content Accessibility Guidelines 2.0 (2008)
• Section 508 Standards
- Published in 2000 to accompany Section 508 of the Rehabilitation Act (requires federal agencies
to procure accessible IT)
- Covers a broader scope of IT, not just Web
- Many states & higher education institutions have adopted either WCAG 2.0 or Section 508 as their
own standard for IT accessibility
11
Basic Accessibility Considerations
Consistency throughout the application
• Visual consistency
• Functional consistency
• Proper use of elements
Basic Accessibility Considerations
Keyboard operability
• Be able to navigate to all focusable elements
• Be able to fully perform all applicable functions
• Links, Forms controls, Menu, Expand/collapse, Carousel, Modal, Custom widgets, etc.
• Be able to always to see the visual focus indicator
• Logical tab order
• Shortcut keys alone do not make application accessible
Basic Accessibility Considerations
ARIA Landmarks
• Integrity of ARIA landmarks throughout the application
• No orphaned content
• Meaningful labels
Basic Accessibility Considerations
Heading Structure
• Hierarchical
• Meaningful
• Inclusiveness
Basic Accessibility Considerations
Other considerations
• Grouping relevant items
- Ordered, unordered & definition lists
• Graphic
- Meaningful text for informational
graphics
- alt="" for all stylistic graphics
• Forms
- Meaningful form control labels
- Verification and error handling
What Helped us the Most
Team Collaboration
A core team driving accessibility
• Internal evangelist
- Champions accessibility and continually raises awareness
- Enters issues and facilitates the process
• Accessibility expert
- Identifies and triages accessibility needs
- Guides optimal solutions
• Lead accessibility developers
- Drives and solves issues in framework (vendor support and/or accessibility developer)
- Organizes, triages, drives and solves issues in application (internal developer)
Team Collaboration
A support team enabling accessibility
• Internal management
- Makes accessibilty a company objective
- Removes roadblocks and provides resources
• Customers
- Hold you accountable
- Help as possible with resources and guidance
• Internal company as a whole
- Training sessions and documentation/wiki pages for accessibile design and coding
- Everyone who touches the product (dev, QA, services, etc.) cares and contributes to accessibility
Updating our Visual Design
• Removed gradient backgrounds, to address
contrast issues
• Replaced all images with icon fonts which are
more easily skinned, and are supported by
screen readers
• Increased white space*, to decrease
information density
• Increased default font size*, to increase
readability
* Except in our “Compact” theme, which is for users who
prefer denser information and smaller fonts
20
Focusing on Keyboard Access First
• Helps ALL users
• Is a place to start, so not overwhelmed
• Can be tested internally, saving time and effort for customer
and vendor team members
• General visual and screen readers STILL important, but this
was a good first step
21
Upgrading to ExtJS 6+
• When we began, we were on ExtJS 4...it would be a LOT of work to address accessibility
issues
• ExtJS 6+ had signifigantly better accessibility features and enablements
- SCSS support for themes and general visual needs
- Focus component: Ext.util.Focusable, Ext.util.FocusableContainer, Ext.mixin.Observable
- Keyboard navigation: Ext.mixin.Keyboard (6.2)
- ARIA properties “baked” into core components
22
Several Development Tips for
You
{
enableFocusableContainer:
false,
items: [
//Whatever buttons you
want in here
this.saveButton,
this.cancelButton
]
}
1. Prior to 6.2, fbar/panel.buttons
config is a toolbar
• This may not be what you want
• Add enableFocusableContainer: false
to allow tabbing on these buttons
rather than arrow keys
- If you are like us, the majority of cases are
OK/Cancel (or some derivation)
- Those should be “tabbable”
me.bottomTb = new
Ext.toolbar.Toolbar({
id: baseId + '-toolbar',
ui: 'footer',
dock: 'bottom',
enableFocusableContainer: false,
layout: {
pack: 'center'
},
items: [
me.msgButtons[0],
me.msgButtons[1],
me.msgButtons[2],
me.msgButtons[3]
]
});
2. Ext.MessageBox may not be a
good choice
• For the reasons we just discussed, you
would need to use arrow keys when
more than one button is included
(YESNO, YESNOCANCEL, etc.)
• Either override this class with an
updated fbar config, or create a
custom Ext.Window class for more
control
3. Custom components (particularly those created <=R4)
• Review your custom components / overrides / extensions
- You may have already tried to handle
• Keyboard navigation
• Focus handling to/from modal
- Don’t “fight the system”, let the framework do its work
• Watch your inline styling, and height/width
configs
- May interfere with focus indicators
26
4. It may be 2016, but browser / OS specific issues still exist
• Now add different screen readers to the mix, yikes
• Examples:
- Keyboard navigation on Mac/FF (esp. toolbars)
- NVDA vs JAWS site interpretation differences
• Pick your battles…unless you have unlimited QA/Dev funds
- Windows / FF / NVDA seems to be the most widely used combination
27
© 2016 NV Access. All rights
reserved.
Trademark The Mozilla
Foundation
&:hover {
background: darken($innotas-secondary-
icon-color, 20%);
}
// $innotas-light-background-color can be
set by theme as an
// example
color: contrast($innotas-light-background-
color,
$innotas-color-on-lightbackground,
$innotas-color-on-darkbackground,
30%);
5. Use SCSS to your advantage
• Maintain contrast ratio equal to or
greater than 4.5:1
- lighten / darken / contrast
• Choose and define color palette
variables
• Be mindful of how those colors may
interact / conflict
if (this.hasFocus) {
this.next().focus();
}
this.close();
6. Watch your focus on disposable
components, particularly 6.2+
• This isn’t specific to accessibility, but it
is a big “heads up”
- Check if a field is focused before closing a
form
- Do not close windows/toasts/etc. before
returning focus to parent
- Check if <iframe> is focused before hiding
or removing it
• User gets “jerky” experience or “lost”
• These become “hard” errors in 6.2 on
destroy
7. You may need to be flexible in the components you use
in your app, some may need to be replaced
• Things like drag/drop are great, until you need to make it keyboard accessible
• Some core components are “more” accessible than others
• ExtJS allows huge flexibility in how you can use/nest components. Screen readers may
not understand your implementation.
• Ext.grid.plugin.RowEditing pre 6.2 will have
screen reader issues
• Locked grids
- Duplicate DOM, screen readers don’t understand
- FF has a fix in place
30
8. Many of the tools are tailored for “traditional” websites /
“web applications”
• AInspector or aXe may give you something like:
- No H1 or H2 elements found on the page
- Ensure <meta name="viewport"> does not disable text scaling and zooming
• 6.2 does have possible options for this, but before that, disabling scale/zoom was
a “requirement”
• Understand the purpose, and review the guidelines referenced in these type of errors
- Single page apps (e.g. ExtJS) don’t use this type of structure, so it doesn’t directly apply
- That does not mean you should not be using appropriate ariaRole, ariaLabel, etc. configurations
on your components
• These are needed for screen readers to “map” your application
31
//ideally more specific here, or
implementation
defaultFocus: ‘component’
//tbar, fbar, tools, buttons config
to allow tabbing
this.fbar = {
enableFocusableContainer: false,
items: [
this.okButton,
this.cancelButton
]
};
9. Create your own panel, and
window classes at a minimum,
and extend from there
• Make sure you handle focus, add a
“safety net” to the base class
• Add a handler for destroy, to make
sure it does not have focus
• Define toolbar behavior override if
desired
10. Danger Zone
• Ext.form.field.HtmlEditor, it’s an iFrame, all bets are off
• Locked grids due to the duplicate DOM previously discussed
• Checkboxes in Ext.grid.plugin.RowEditing
• Custom Ext.form.field.ComboBox
- Watch your aria tags (e.g. aria-autocomplete)
• SR Ext.menu.Menu when there are submenus
- Screen reader counts are of (item x of y)
33
Q & A
Any questions?
34
Thanks for coming!
Takeaway points
• Don’t try to do this on your own...team collaboration ftw!
• Upgrade sooner rather than later...the latest GA 6.2 is great (go Team Accessibility!)
• This is a major undertaking, not just an afterthought or final polish on your app...plan
that way
References
United Nations:
Population Division of the Department of Economic and Social Affairs of the United
Nations Secretariat - World Population Prospects: The 2008 Revision
(http://www.un.org/esa/population/publications/wpp2006/wpp2006.htm)
2010 US Census:
Bernstein, Robert, “Nearly 1 in 5 People Have a Disability in the U.S., Census Bureau
Reports”, U.S. Census Bureau, Washington, DC, 2012
(https://www.census.gov/newsroom/releases/archives/miscellaneous/cb12-134.html)
36

More Related Content

What's hot

MOBILE QUESTIONS & ANSWER WEBSITE
MOBILE QUESTIONS & ANSWER WEBSITEMOBILE QUESTIONS & ANSWER WEBSITE
MOBILE QUESTIONS & ANSWER WEBSITEVishal Mittal
 
Mobile Information Architecture
Mobile Information ArchitectureMobile Information Architecture
Mobile Information ArchitectureAndy Fitzgerald
 
jQuery Mobile Overview - Boston
jQuery Mobile  Overview -  BostonjQuery Mobile  Overview -  Boston
jQuery Mobile Overview - BostonTodd Parker
 
PyCon PL 2014 executable api
PyCon PL 2014   executable apiPyCon PL 2014   executable api
PyCon PL 2014 executable apiWojtek Erbetowski
 
Building Mobile Websites
Building Mobile WebsitesBuilding Mobile Websites
Building Mobile WebsitesShoshi Roberts
 
Basic Responsive Theming - Somedutta Ghosh
Basic Responsive Theming - Somedutta GhoshBasic Responsive Theming - Somedutta Ghosh
Basic Responsive Theming - Somedutta GhoshDrupal Camp Delhi
 
Phonegap - An Introduction
Phonegap - An IntroductionPhonegap - An Introduction
Phonegap - An IntroductionTyler Johnston
 
Using WordPress for Rapid Prototyping
Using WordPress for Rapid PrototypingUsing WordPress for Rapid Prototyping
Using WordPress for Rapid PrototypingDrew Morris
 
5 Reasons Why Your Website Is[n’t] a Native App (PrDC 2015)
5 Reasons Why Your Website Is[n’t] a Native App (PrDC 2015)5 Reasons Why Your Website Is[n’t] a Native App (PrDC 2015)
5 Reasons Why Your Website Is[n’t] a Native App (PrDC 2015)David Wesst
 
Seminar: Become a Reliable Web Programmer
Seminar: Become a Reliable Web ProgrammerSeminar: Become a Reliable Web Programmer
Seminar: Become a Reliable Web ProgrammerAchmad Solichin
 
How browser accessibility can enhance safe driving (AGL Summit Nov 2020)
How browser accessibility can enhance safe driving (AGL Summit Nov 2020)How browser accessibility can enhance safe driving (AGL Summit Nov 2020)
How browser accessibility can enhance safe driving (AGL Summit Nov 2020)Igalia
 

What's hot (18)

MOBILE QUESTIONS & ANSWER WEBSITE
MOBILE QUESTIONS & ANSWER WEBSITEMOBILE QUESTIONS & ANSWER WEBSITE
MOBILE QUESTIONS & ANSWER WEBSITE
 
Mobile Information Architecture
Mobile Information ArchitectureMobile Information Architecture
Mobile Information Architecture
 
jQuery Mobile Overview - Boston
jQuery Mobile  Overview -  BostonjQuery Mobile  Overview -  Boston
jQuery Mobile Overview - Boston
 
Desktop Intro
Desktop IntroDesktop Intro
Desktop Intro
 
PyCon PL 2014 executable api
PyCon PL 2014   executable apiPyCon PL 2014   executable api
PyCon PL 2014 executable api
 
Building Mobile Websites
Building Mobile WebsitesBuilding Mobile Websites
Building Mobile Websites
 
BackboneJS
BackboneJSBackboneJS
BackboneJS
 
Basic Responsive Theming - Somedutta Ghosh
Basic Responsive Theming - Somedutta GhoshBasic Responsive Theming - Somedutta Ghosh
Basic Responsive Theming - Somedutta Ghosh
 
1. course introduction
1. course introduction1. course introduction
1. course introduction
 
Phonegap - An Introduction
Phonegap - An IntroductionPhonegap - An Introduction
Phonegap - An Introduction
 
Using WordPress for Rapid Prototyping
Using WordPress for Rapid PrototypingUsing WordPress for Rapid Prototyping
Using WordPress for Rapid Prototyping
 
2014 Picking a Platform by Anand Kulkarni
2014 Picking a Platform by Anand Kulkarni2014 Picking a Platform by Anand Kulkarni
2014 Picking a Platform by Anand Kulkarni
 
5 Reasons Why Your Website Is[n’t] a Native App (PrDC 2015)
5 Reasons Why Your Website Is[n’t] a Native App (PrDC 2015)5 Reasons Why Your Website Is[n’t] a Native App (PrDC 2015)
5 Reasons Why Your Website Is[n’t] a Native App (PrDC 2015)
 
User Experience Prototyping
User Experience PrototypingUser Experience Prototyping
User Experience Prototyping
 
Introduction to Mobile Development
Introduction to Mobile DevelopmentIntroduction to Mobile Development
Introduction to Mobile Development
 
Progressive Web Apps - NPD Meet
Progressive Web Apps - NPD MeetProgressive Web Apps - NPD Meet
Progressive Web Apps - NPD Meet
 
Seminar: Become a Reliable Web Programmer
Seminar: Become a Reliable Web ProgrammerSeminar: Become a Reliable Web Programmer
Seminar: Become a Reliable Web Programmer
 
How browser accessibility can enhance safe driving (AGL Summit Nov 2020)
How browser accessibility can enhance safe driving (AGL Summit Nov 2020)How browser accessibility can enhance safe driving (AGL Summit Nov 2020)
How browser accessibility can enhance safe driving (AGL Summit Nov 2020)
 

Viewers also liked

Building Ext JS Using HATEOAS - Jeff Stano
Building Ext JS Using HATEOAS - Jeff StanoBuilding Ext JS Using HATEOAS - Jeff Stano
Building Ext JS Using HATEOAS - Jeff StanoSencha
 
SenchaCon 2016: Turbocharge your Ext JS App - Per Minborg, Anselm McClain, Jo...
SenchaCon 2016: Turbocharge your Ext JS App - Per Minborg, Anselm McClain, Jo...SenchaCon 2016: Turbocharge your Ext JS App - Per Minborg, Anselm McClain, Jo...
SenchaCon 2016: Turbocharge your Ext JS App - Per Minborg, Anselm McClain, Jo...Sencha
 
SenchaCon 2016: Integrating Geospatial Maps & Big Data Using CartoDB via Ext ...
SenchaCon 2016: Integrating Geospatial Maps & Big Data Using CartoDB via Ext ...SenchaCon 2016: Integrating Geospatial Maps & Big Data Using CartoDB via Ext ...
SenchaCon 2016: Integrating Geospatial Maps & Big Data Using CartoDB via Ext ...Sencha
 
SenchaCon 2016: Creating a Flexible and Usable Industry Specific Solution - D...
SenchaCon 2016: Creating a Flexible and Usable Industry Specific Solution - D...SenchaCon 2016: Creating a Flexible and Usable Industry Specific Solution - D...
SenchaCon 2016: Creating a Flexible and Usable Industry Specific Solution - D...Sencha
 
SenchaCon 2016: Refine Enterprise Applications by Focusing on U0ser Experienc...
SenchaCon 2016: Refine Enterprise Applications by Focusing on U0ser Experienc...SenchaCon 2016: Refine Enterprise Applications by Focusing on U0ser Experienc...
SenchaCon 2016: Refine Enterprise Applications by Focusing on U0ser Experienc...Sencha
 
SenchaCon 2016: Handling Undo-Redo in Sencha Applications - Nickolay Platonov
SenchaCon 2016: Handling Undo-Redo in Sencha Applications - Nickolay PlatonovSenchaCon 2016: Handling Undo-Redo in Sencha Applications - Nickolay Platonov
SenchaCon 2016: Handling Undo-Redo in Sencha Applications - Nickolay PlatonovSencha
 
SenchaCon 2016: Developing and Delivering Quality Code, Frequently - Neil Manvar
SenchaCon 2016: Developing and Delivering Quality Code, Frequently - Neil ManvarSenchaCon 2016: Developing and Delivering Quality Code, Frequently - Neil Manvar
SenchaCon 2016: Developing and Delivering Quality Code, Frequently - Neil ManvarSencha
 
SenchaCon 2016: Improve Workflow Driven Applications with Ext JS Draw Package...
SenchaCon 2016: Improve Workflow Driven Applications with Ext JS Draw Package...SenchaCon 2016: Improve Workflow Driven Applications with Ext JS Draw Package...
SenchaCon 2016: Improve Workflow Driven Applications with Ext JS Draw Package...Sencha
 
SenchaCon 2016: Expect the Unexpected - Dealing with Errors in Web Apps
SenchaCon 2016: Expect the Unexpected - Dealing with Errors in Web AppsSenchaCon 2016: Expect the Unexpected - Dealing with Errors in Web Apps
SenchaCon 2016: Expect the Unexpected - Dealing with Errors in Web AppsSencha
 
SenchaCon 2016: JavaScript is Great but Stop Writing It - Rory Hardy
SenchaCon 2016: JavaScript is Great but Stop Writing It - Rory HardySenchaCon 2016: JavaScript is Great but Stop Writing It - Rory Hardy
SenchaCon 2016: JavaScript is Great but Stop Writing It - Rory HardySencha
 
SenchaCon 2016: Using Ext JS 6 for Cross-Platform Development on Mobile - And...
SenchaCon 2016: Using Ext JS 6 for Cross-Platform Development on Mobile - And...SenchaCon 2016: Using Ext JS 6 for Cross-Platform Development on Mobile - And...
SenchaCon 2016: Using Ext JS 6 for Cross-Platform Development on Mobile - And...Sencha
 
SenchaCon 2016: Add Magic to Your Ext JS Apps with D3 Visualizations - Vitaly...
SenchaCon 2016: Add Magic to Your Ext JS Apps with D3 Visualizations - Vitaly...SenchaCon 2016: Add Magic to Your Ext JS Apps with D3 Visualizations - Vitaly...
SenchaCon 2016: Add Magic to Your Ext JS Apps with D3 Visualizations - Vitaly...Sencha
 
Ext JS Architecture Best Practices - Mitchell Simeons
Ext JS Architecture Best Practices - Mitchell SimeonsExt JS Architecture Best Practices - Mitchell Simeons
Ext JS Architecture Best Practices - Mitchell SimeonsSencha
 
SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...
SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...
SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...Sencha
 
SenchaCon 2016: Keynote Presentation - Art Landro, Gautam Agrawal, Mark Brocato
SenchaCon 2016: Keynote Presentation - Art Landro, Gautam Agrawal, Mark BrocatoSenchaCon 2016: Keynote Presentation - Art Landro, Gautam Agrawal, Mark Brocato
SenchaCon 2016: Keynote Presentation - Art Landro, Gautam Agrawal, Mark BrocatoSencha
 
SenchaCon 2016: How to Auto Generate a Back-end in Minutes - Per Minborg, Emi...
SenchaCon 2016: How to Auto Generate a Back-end in Minutes - Per Minborg, Emi...SenchaCon 2016: How to Auto Generate a Back-end in Minutes - Per Minborg, Emi...
SenchaCon 2016: How to Auto Generate a Back-end in Minutes - Per Minborg, Emi...Sencha
 
SenchaCon 2016: How to Give your Sencha App Real-time Web Performance - James...
SenchaCon 2016: How to Give your Sencha App Real-time Web Performance - James...SenchaCon 2016: How to Give your Sencha App Real-time Web Performance - James...
SenchaCon 2016: How to Give your Sencha App Real-time Web Performance - James...Sencha
 
SenchaCon 2016: Handle Real-World Data with Confidence - Fredric Berling
SenchaCon 2016: Handle Real-World Data with Confidence - Fredric Berling SenchaCon 2016: Handle Real-World Data with Confidence - Fredric Berling
SenchaCon 2016: Handle Real-World Data with Confidence - Fredric Berling Sencha
 
SenchaCon 2016: Modernizing the Ext JS Class System - Don Griffin
SenchaCon 2016: Modernizing the Ext JS Class System - Don GriffinSenchaCon 2016: Modernizing the Ext JS Class System - Don Griffin
SenchaCon 2016: Modernizing the Ext JS Class System - Don GriffinSencha
 
SenchaCon 2016: The Modern Toolchain - Ross Gerbasi
SenchaCon 2016: The Modern Toolchain - Ross Gerbasi   SenchaCon 2016: The Modern Toolchain - Ross Gerbasi
SenchaCon 2016: The Modern Toolchain - Ross Gerbasi Sencha
 

Viewers also liked (20)

Building Ext JS Using HATEOAS - Jeff Stano
Building Ext JS Using HATEOAS - Jeff StanoBuilding Ext JS Using HATEOAS - Jeff Stano
Building Ext JS Using HATEOAS - Jeff Stano
 
SenchaCon 2016: Turbocharge your Ext JS App - Per Minborg, Anselm McClain, Jo...
SenchaCon 2016: Turbocharge your Ext JS App - Per Minborg, Anselm McClain, Jo...SenchaCon 2016: Turbocharge your Ext JS App - Per Minborg, Anselm McClain, Jo...
SenchaCon 2016: Turbocharge your Ext JS App - Per Minborg, Anselm McClain, Jo...
 
SenchaCon 2016: Integrating Geospatial Maps & Big Data Using CartoDB via Ext ...
SenchaCon 2016: Integrating Geospatial Maps & Big Data Using CartoDB via Ext ...SenchaCon 2016: Integrating Geospatial Maps & Big Data Using CartoDB via Ext ...
SenchaCon 2016: Integrating Geospatial Maps & Big Data Using CartoDB via Ext ...
 
SenchaCon 2016: Creating a Flexible and Usable Industry Specific Solution - D...
SenchaCon 2016: Creating a Flexible and Usable Industry Specific Solution - D...SenchaCon 2016: Creating a Flexible and Usable Industry Specific Solution - D...
SenchaCon 2016: Creating a Flexible and Usable Industry Specific Solution - D...
 
SenchaCon 2016: Refine Enterprise Applications by Focusing on U0ser Experienc...
SenchaCon 2016: Refine Enterprise Applications by Focusing on U0ser Experienc...SenchaCon 2016: Refine Enterprise Applications by Focusing on U0ser Experienc...
SenchaCon 2016: Refine Enterprise Applications by Focusing on U0ser Experienc...
 
SenchaCon 2016: Handling Undo-Redo in Sencha Applications - Nickolay Platonov
SenchaCon 2016: Handling Undo-Redo in Sencha Applications - Nickolay PlatonovSenchaCon 2016: Handling Undo-Redo in Sencha Applications - Nickolay Platonov
SenchaCon 2016: Handling Undo-Redo in Sencha Applications - Nickolay Platonov
 
SenchaCon 2016: Developing and Delivering Quality Code, Frequently - Neil Manvar
SenchaCon 2016: Developing and Delivering Quality Code, Frequently - Neil ManvarSenchaCon 2016: Developing and Delivering Quality Code, Frequently - Neil Manvar
SenchaCon 2016: Developing and Delivering Quality Code, Frequently - Neil Manvar
 
SenchaCon 2016: Improve Workflow Driven Applications with Ext JS Draw Package...
SenchaCon 2016: Improve Workflow Driven Applications with Ext JS Draw Package...SenchaCon 2016: Improve Workflow Driven Applications with Ext JS Draw Package...
SenchaCon 2016: Improve Workflow Driven Applications with Ext JS Draw Package...
 
SenchaCon 2016: Expect the Unexpected - Dealing with Errors in Web Apps
SenchaCon 2016: Expect the Unexpected - Dealing with Errors in Web AppsSenchaCon 2016: Expect the Unexpected - Dealing with Errors in Web Apps
SenchaCon 2016: Expect the Unexpected - Dealing with Errors in Web Apps
 
SenchaCon 2016: JavaScript is Great but Stop Writing It - Rory Hardy
SenchaCon 2016: JavaScript is Great but Stop Writing It - Rory HardySenchaCon 2016: JavaScript is Great but Stop Writing It - Rory Hardy
SenchaCon 2016: JavaScript is Great but Stop Writing It - Rory Hardy
 
SenchaCon 2016: Using Ext JS 6 for Cross-Platform Development on Mobile - And...
SenchaCon 2016: Using Ext JS 6 for Cross-Platform Development on Mobile - And...SenchaCon 2016: Using Ext JS 6 for Cross-Platform Development on Mobile - And...
SenchaCon 2016: Using Ext JS 6 for Cross-Platform Development on Mobile - And...
 
SenchaCon 2016: Add Magic to Your Ext JS Apps with D3 Visualizations - Vitaly...
SenchaCon 2016: Add Magic to Your Ext JS Apps with D3 Visualizations - Vitaly...SenchaCon 2016: Add Magic to Your Ext JS Apps with D3 Visualizations - Vitaly...
SenchaCon 2016: Add Magic to Your Ext JS Apps with D3 Visualizations - Vitaly...
 
Ext JS Architecture Best Practices - Mitchell Simeons
Ext JS Architecture Best Practices - Mitchell SimeonsExt JS Architecture Best Practices - Mitchell Simeons
Ext JS Architecture Best Practices - Mitchell Simeons
 
SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...
SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...
SenchaCon 2016: LinkRest - Modern RESTful API Framework for Ext JS Apps - Rou...
 
SenchaCon 2016: Keynote Presentation - Art Landro, Gautam Agrawal, Mark Brocato
SenchaCon 2016: Keynote Presentation - Art Landro, Gautam Agrawal, Mark BrocatoSenchaCon 2016: Keynote Presentation - Art Landro, Gautam Agrawal, Mark Brocato
SenchaCon 2016: Keynote Presentation - Art Landro, Gautam Agrawal, Mark Brocato
 
SenchaCon 2016: How to Auto Generate a Back-end in Minutes - Per Minborg, Emi...
SenchaCon 2016: How to Auto Generate a Back-end in Minutes - Per Minborg, Emi...SenchaCon 2016: How to Auto Generate a Back-end in Minutes - Per Minborg, Emi...
SenchaCon 2016: How to Auto Generate a Back-end in Minutes - Per Minborg, Emi...
 
SenchaCon 2016: How to Give your Sencha App Real-time Web Performance - James...
SenchaCon 2016: How to Give your Sencha App Real-time Web Performance - James...SenchaCon 2016: How to Give your Sencha App Real-time Web Performance - James...
SenchaCon 2016: How to Give your Sencha App Real-time Web Performance - James...
 
SenchaCon 2016: Handle Real-World Data with Confidence - Fredric Berling
SenchaCon 2016: Handle Real-World Data with Confidence - Fredric Berling SenchaCon 2016: Handle Real-World Data with Confidence - Fredric Berling
SenchaCon 2016: Handle Real-World Data with Confidence - Fredric Berling
 
SenchaCon 2016: Modernizing the Ext JS Class System - Don Griffin
SenchaCon 2016: Modernizing the Ext JS Class System - Don GriffinSenchaCon 2016: Modernizing the Ext JS Class System - Don Griffin
SenchaCon 2016: Modernizing the Ext JS Class System - Don Griffin
 
SenchaCon 2016: The Modern Toolchain - Ross Gerbasi
SenchaCon 2016: The Modern Toolchain - Ross Gerbasi   SenchaCon 2016: The Modern Toolchain - Ross Gerbasi
SenchaCon 2016: The Modern Toolchain - Ross Gerbasi
 

Similar to SenchaCon 2016: Accessibility, Teamwork & Ext JS: A Customer Success Story - Brent Balog, Sherrill Packebush, Hadi Rangin

SIGNA11Y - Speaker Presentations
SIGNA11Y - Speaker PresentationsSIGNA11Y - Speaker Presentations
SIGNA11Y - Speaker PresentationsCello Signal
 
Multi Platform User Exerience
Multi Platform User ExerienceMulti Platform User Exerience
Multi Platform User ExerienceTanya Zavialova
 
User Experience Design: an Overview
User Experience Design: an OverviewUser Experience Design: an Overview
User Experience Design: an OverviewJulie Grundy
 
UX Principles and Practice
UX Principles and PracticeUX Principles and Practice
UX Principles and PracticeIBM
 
Guerilla Human Computer Interaction and Customer Based Design
Guerilla Human Computer Interaction and Customer Based DesignGuerilla Human Computer Interaction and Customer Based Design
Guerilla Human Computer Interaction and Customer Based DesignQuentin Christensen
 
UX-Driven & Inclusive Data Visualizations
UX-Driven & Inclusive Data VisualizationsUX-Driven & Inclusive Data Visualizations
UX-Driven & Inclusive Data VisualizationsMichelle Michael
 
Building products people actually can use – why all developers need to unders...
Building products people actually can use – why all developers need to unders...Building products people actually can use – why all developers need to unders...
Building products people actually can use – why all developers need to unders...Cyber-Duck
 
unit5_usability.pptx
unit5_usability.pptxunit5_usability.pptx
unit5_usability.pptxSrilekhaK12
 
Accessibility And 508 Compliance In 2009
Accessibility And 508 Compliance In 2009Accessibility And 508 Compliance In 2009
Accessibility And 508 Compliance In 2009Emagination ®
 
Evaluating User Interfaces
Evaluating User InterfacesEvaluating User Interfaces
Evaluating User InterfacesNancy Jain
 
Tales from the Accessibility Trenches
Tales from the Accessibility TrenchesTales from the Accessibility Trenches
Tales from the Accessibility Trenchesgraemecoleman
 
Original Access U 2013 - 508 Refresh
Original Access U 2013 - 508 RefreshOriginal Access U 2013 - 508 Refresh
Original Access U 2013 - 508 RefreshBarry Johnson
 
Intro to ux and how to design a thoughtful ui
Intro to ux and how to design a thoughtful uiIntro to ux and how to design a thoughtful ui
Intro to ux and how to design a thoughtful uiThanos Makaronas
 
Providing better scaffolding - how BS8878 affects people designing inclusive ...
Providing better scaffolding - how BS8878 affects people designing inclusive ...Providing better scaffolding - how BS8878 affects people designing inclusive ...
Providing better scaffolding - how BS8878 affects people designing inclusive ...Jonathan Hassell
 
Design Like a Pro: Building Better HMI Navigation Schemes
Design Like a Pro: Building Better HMI Navigation SchemesDesign Like a Pro: Building Better HMI Navigation Schemes
Design Like a Pro: Building Better HMI Navigation SchemesInductive Automation
 
Design Like a Pro: Building Better HMI Navigation Schemes
Design Like a Pro: Building Better HMI Navigation SchemesDesign Like a Pro: Building Better HMI Navigation Schemes
Design Like a Pro: Building Better HMI Navigation SchemesInductive Automation
 
Usability Workshop at Lillebaelt Academy
Usability Workshop at Lillebaelt AcademyUsability Workshop at Lillebaelt Academy
Usability Workshop at Lillebaelt AcademyDániel Góré
 
The biggest DevOps problems you didn't know you had and what to do about them
The biggest DevOps problems you didn't know you had and what to do about themThe biggest DevOps problems you didn't know you had and what to do about them
The biggest DevOps problems you didn't know you had and what to do about themWayne Greene
 
Targeted documentation STC Houston, Mar 20, 2012
Targeted documentation   STC Houston, Mar 20, 2012Targeted documentation   STC Houston, Mar 20, 2012
Targeted documentation STC Houston, Mar 20, 2012STC_Houston
 
Building Beautiful and Highly Usable Products by Simon Vallee
Building Beautiful and Highly Usable Products by Simon ValleeBuilding Beautiful and Highly Usable Products by Simon Vallee
Building Beautiful and Highly Usable Products by Simon ValleeProductHuntTO
 

Similar to SenchaCon 2016: Accessibility, Teamwork & Ext JS: A Customer Success Story - Brent Balog, Sherrill Packebush, Hadi Rangin (20)

SIGNA11Y - Speaker Presentations
SIGNA11Y - Speaker PresentationsSIGNA11Y - Speaker Presentations
SIGNA11Y - Speaker Presentations
 
Multi Platform User Exerience
Multi Platform User ExerienceMulti Platform User Exerience
Multi Platform User Exerience
 
User Experience Design: an Overview
User Experience Design: an OverviewUser Experience Design: an Overview
User Experience Design: an Overview
 
UX Principles and Practice
UX Principles and PracticeUX Principles and Practice
UX Principles and Practice
 
Guerilla Human Computer Interaction and Customer Based Design
Guerilla Human Computer Interaction and Customer Based DesignGuerilla Human Computer Interaction and Customer Based Design
Guerilla Human Computer Interaction and Customer Based Design
 
UX-Driven & Inclusive Data Visualizations
UX-Driven & Inclusive Data VisualizationsUX-Driven & Inclusive Data Visualizations
UX-Driven & Inclusive Data Visualizations
 
Building products people actually can use – why all developers need to unders...
Building products people actually can use – why all developers need to unders...Building products people actually can use – why all developers need to unders...
Building products people actually can use – why all developers need to unders...
 
unit5_usability.pptx
unit5_usability.pptxunit5_usability.pptx
unit5_usability.pptx
 
Accessibility And 508 Compliance In 2009
Accessibility And 508 Compliance In 2009Accessibility And 508 Compliance In 2009
Accessibility And 508 Compliance In 2009
 
Evaluating User Interfaces
Evaluating User InterfacesEvaluating User Interfaces
Evaluating User Interfaces
 
Tales from the Accessibility Trenches
Tales from the Accessibility TrenchesTales from the Accessibility Trenches
Tales from the Accessibility Trenches
 
Original Access U 2013 - 508 Refresh
Original Access U 2013 - 508 RefreshOriginal Access U 2013 - 508 Refresh
Original Access U 2013 - 508 Refresh
 
Intro to ux and how to design a thoughtful ui
Intro to ux and how to design a thoughtful uiIntro to ux and how to design a thoughtful ui
Intro to ux and how to design a thoughtful ui
 
Providing better scaffolding - how BS8878 affects people designing inclusive ...
Providing better scaffolding - how BS8878 affects people designing inclusive ...Providing better scaffolding - how BS8878 affects people designing inclusive ...
Providing better scaffolding - how BS8878 affects people designing inclusive ...
 
Design Like a Pro: Building Better HMI Navigation Schemes
Design Like a Pro: Building Better HMI Navigation SchemesDesign Like a Pro: Building Better HMI Navigation Schemes
Design Like a Pro: Building Better HMI Navigation Schemes
 
Design Like a Pro: Building Better HMI Navigation Schemes
Design Like a Pro: Building Better HMI Navigation SchemesDesign Like a Pro: Building Better HMI Navigation Schemes
Design Like a Pro: Building Better HMI Navigation Schemes
 
Usability Workshop at Lillebaelt Academy
Usability Workshop at Lillebaelt AcademyUsability Workshop at Lillebaelt Academy
Usability Workshop at Lillebaelt Academy
 
The biggest DevOps problems you didn't know you had and what to do about them
The biggest DevOps problems you didn't know you had and what to do about themThe biggest DevOps problems you didn't know you had and what to do about them
The biggest DevOps problems you didn't know you had and what to do about them
 
Targeted documentation STC Houston, Mar 20, 2012
Targeted documentation   STC Houston, Mar 20, 2012Targeted documentation   STC Houston, Mar 20, 2012
Targeted documentation STC Houston, Mar 20, 2012
 
Building Beautiful and Highly Usable Products by Simon Vallee
Building Beautiful and Highly Usable Products by Simon ValleeBuilding Beautiful and Highly Usable Products by Simon Vallee
Building Beautiful and Highly Usable Products by Simon Vallee
 

More from Sencha

Breathe New Life into Your Existing JavaScript Applications with Web Components
Breathe New Life into Your Existing JavaScript Applications with Web ComponentsBreathe New Life into Your Existing JavaScript Applications with Web Components
Breathe New Life into Your Existing JavaScript Applications with Web ComponentsSencha
 
Ext JS 6.6 Highlights
Ext JS 6.6 HighlightsExt JS 6.6 Highlights
Ext JS 6.6 HighlightsSencha
 
Sencha Roadshow 2017: BufferedStore Internals featuring eyeworkers interactiv...
Sencha Roadshow 2017: BufferedStore Internals featuring eyeworkers interactiv...Sencha Roadshow 2017: BufferedStore Internals featuring eyeworkers interactiv...
Sencha Roadshow 2017: BufferedStore Internals featuring eyeworkers interactiv...Sencha
 
Sencha Roadshow 2017: Build Progressive Web Apps with Ext JS and Cmd
Sencha Roadshow 2017: Build Progressive Web Apps with Ext JS and Cmd Sencha Roadshow 2017: Build Progressive Web Apps with Ext JS and Cmd
Sencha Roadshow 2017: Build Progressive Web Apps with Ext JS and Cmd Sencha
 
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App Testing
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App TestingSencha Roadshow 2017: Best Practices for Implementing Continuous Web App Testing
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App TestingSencha
 
Sencha Roadshow 2017: What's New in Sencha Test
Sencha Roadshow 2017: What's New in Sencha TestSencha Roadshow 2017: What's New in Sencha Test
Sencha Roadshow 2017: What's New in Sencha TestSencha
 
Sencha Roadshow 2017: Sencha Upgrades - The Good. The Bad. The Ugly - Eva Luc...
Sencha Roadshow 2017: Sencha Upgrades - The Good. The Bad. The Ugly - Eva Luc...Sencha Roadshow 2017: Sencha Upgrades - The Good. The Bad. The Ugly - Eva Luc...
Sencha Roadshow 2017: Sencha Upgrades - The Good. The Bad. The Ugly - Eva Luc...Sencha
 
Sencha Roadshow 2017: Modernizing the Ext JS Class System and Tooling
Sencha Roadshow 2017: Modernizing the Ext JS Class System and ToolingSencha Roadshow 2017: Modernizing the Ext JS Class System and Tooling
Sencha Roadshow 2017: Modernizing the Ext JS Class System and ToolingSencha
 
Sencha Roadshow 2017: Mobile First or Desktop First
Sencha Roadshow 2017: Mobile First or Desktop FirstSencha Roadshow 2017: Mobile First or Desktop First
Sencha Roadshow 2017: Mobile First or Desktop FirstSencha
 
Sencha Roadshow 2017: Innovations in Ext JS 6.5 and Beyond
Sencha Roadshow 2017: Innovations in Ext JS 6.5 and BeyondSencha Roadshow 2017: Innovations in Ext JS 6.5 and Beyond
Sencha Roadshow 2017: Innovations in Ext JS 6.5 and BeyondSencha
 
Leveraging React and GraphQL to Create a Performant, Scalable Data Grid
Leveraging React and GraphQL to Create a Performant, Scalable Data GridLeveraging React and GraphQL to Create a Performant, Scalable Data Grid
Leveraging React and GraphQL to Create a Performant, Scalable Data GridSencha
 
Learn Key Insights from The State of Web Application Testing Research Report
Learn Key Insights from The State of Web Application Testing Research ReportLearn Key Insights from The State of Web Application Testing Research Report
Learn Key Insights from The State of Web Application Testing Research ReportSencha
 
Introducing ExtReact: Adding Powerful Sencha Components to React Apps
Introducing ExtReact: Adding Powerful Sencha Components to React AppsIntroducing ExtReact: Adding Powerful Sencha Components to React Apps
Introducing ExtReact: Adding Powerful Sencha Components to React AppsSencha
 

More from Sencha (13)

Breathe New Life into Your Existing JavaScript Applications with Web Components
Breathe New Life into Your Existing JavaScript Applications with Web ComponentsBreathe New Life into Your Existing JavaScript Applications with Web Components
Breathe New Life into Your Existing JavaScript Applications with Web Components
 
Ext JS 6.6 Highlights
Ext JS 6.6 HighlightsExt JS 6.6 Highlights
Ext JS 6.6 Highlights
 
Sencha Roadshow 2017: BufferedStore Internals featuring eyeworkers interactiv...
Sencha Roadshow 2017: BufferedStore Internals featuring eyeworkers interactiv...Sencha Roadshow 2017: BufferedStore Internals featuring eyeworkers interactiv...
Sencha Roadshow 2017: BufferedStore Internals featuring eyeworkers interactiv...
 
Sencha Roadshow 2017: Build Progressive Web Apps with Ext JS and Cmd
Sencha Roadshow 2017: Build Progressive Web Apps with Ext JS and Cmd Sencha Roadshow 2017: Build Progressive Web Apps with Ext JS and Cmd
Sencha Roadshow 2017: Build Progressive Web Apps with Ext JS and Cmd
 
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App Testing
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App TestingSencha Roadshow 2017: Best Practices for Implementing Continuous Web App Testing
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App Testing
 
Sencha Roadshow 2017: What's New in Sencha Test
Sencha Roadshow 2017: What's New in Sencha TestSencha Roadshow 2017: What's New in Sencha Test
Sencha Roadshow 2017: What's New in Sencha Test
 
Sencha Roadshow 2017: Sencha Upgrades - The Good. The Bad. The Ugly - Eva Luc...
Sencha Roadshow 2017: Sencha Upgrades - The Good. The Bad. The Ugly - Eva Luc...Sencha Roadshow 2017: Sencha Upgrades - The Good. The Bad. The Ugly - Eva Luc...
Sencha Roadshow 2017: Sencha Upgrades - The Good. The Bad. The Ugly - Eva Luc...
 
Sencha Roadshow 2017: Modernizing the Ext JS Class System and Tooling
Sencha Roadshow 2017: Modernizing the Ext JS Class System and ToolingSencha Roadshow 2017: Modernizing the Ext JS Class System and Tooling
Sencha Roadshow 2017: Modernizing the Ext JS Class System and Tooling
 
Sencha Roadshow 2017: Mobile First or Desktop First
Sencha Roadshow 2017: Mobile First or Desktop FirstSencha Roadshow 2017: Mobile First or Desktop First
Sencha Roadshow 2017: Mobile First or Desktop First
 
Sencha Roadshow 2017: Innovations in Ext JS 6.5 and Beyond
Sencha Roadshow 2017: Innovations in Ext JS 6.5 and BeyondSencha Roadshow 2017: Innovations in Ext JS 6.5 and Beyond
Sencha Roadshow 2017: Innovations in Ext JS 6.5 and Beyond
 
Leveraging React and GraphQL to Create a Performant, Scalable Data Grid
Leveraging React and GraphQL to Create a Performant, Scalable Data GridLeveraging React and GraphQL to Create a Performant, Scalable Data Grid
Leveraging React and GraphQL to Create a Performant, Scalable Data Grid
 
Learn Key Insights from The State of Web Application Testing Research Report
Learn Key Insights from The State of Web Application Testing Research ReportLearn Key Insights from The State of Web Application Testing Research Report
Learn Key Insights from The State of Web Application Testing Research Report
 
Introducing ExtReact: Adding Powerful Sencha Components to React Apps
Introducing ExtReact: Adding Powerful Sencha Components to React AppsIntroducing ExtReact: Adding Powerful Sencha Components to React Apps
Introducing ExtReact: Adding Powerful Sencha Components to React Apps
 

Recently uploaded

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
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 

Recently uploaded (20)

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
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 

SenchaCon 2016: Accessibility, Teamwork & Ext JS: A Customer Success Story - Brent Balog, Sherrill Packebush, Hadi Rangin

  • 1. Accessibility, Teamwork & ExtJS: A Customer Success Story Brent Balog – Senior UI Engineer, Innotas by Planview Sherrill Packebush, PhD – UX Architect, Innotas by Planview Hadi Rangin – IT Accessibility Specialist, University of Washington
  • 2. Some Quick Facts • Almost 1 in 5 people have a disability* • 8.1 million people have difficulty seeing (2 million cannot see at all)* • 19.9 million people have difficulty lifting or grasping* • World population is aging** 2 * 2010 US Census ** UN World Population Prospects
  • 3. Preview • How the heck do we get to accessibility? • So, what does it really mean to be accessible? • What helped us the most • Several development tips for you 3
  • 4. How the Heck do We Get to Accessibility?
  • 5. VPAT (Voluntary Product Accessibility Template) • Self evaluation for conformance to applicable 508 sections • Checklist for does your application meet these guidelines • Used for customer RFPs, advising of where we didn’t pass • Was just a point in time evaluation, not a process to get to accessibility • Other accessibility issues could creep in as our app evolved • We didn’t believe this was sufficient or the best approach for us…the tail wagging the dog 5
  • 6. Consulting • Could perform a thorough evaluation…great! • Could provide explicit feedback on what changes to make…excellent! But, - Might actually be another VPAT checklist - Might not match or be able to apply to ExtJS capabilities • High rampup time and cost for familiarization with our application • Would cost $$$ • Might need additional consulting as our app evolved • This wasn’t a viable route for us 6
  • 7. In House (on our Own) • Created keyboard access guidelines • Involved our QA team to help us identify issues using WAVE • We found a LOT of issues, but we weren’t sure what - Were the most critical and not false positives - Truly applied to our users - Were the best approaches to address some of them - Other issues we were likely missing • We needed more expertise 7
  • 8. In House (with Help from our Friends) • A customer who cared deeply about accessibility, were experts, and willing to help - Revised the keyboard access guidelines - Tons better evaluation, triage, and solutions - But still very time consuming, tedious, and point solutions didn’t make sense - Luckily a brilliant man asked why we didn’t contact the vendor? • A vendor who cared deeply about accessibility and was looking for accessibility gurus - To identify the best solutions at the framework level - To make not only their product, but their customers successful • This WORKED! Or is working, it’s a continual process 8
  • 9. So, what Does it Really Mean to be Accessible?
  • 10. Definition of “Accessible” “Accessible” means a person with a disability is afforded the opportunity to acquire the same information, engage in the same interactions, & enjoy the same services as a person without a disability in an equally effective & equally integrated manner, with substantially equivalent ease of use. The person with a disability must be able to obtain the information as fully, equally & independently as a person without a disability. 10
  • 11. IT Accessibility Standards • World Wide Web Consortium (W3C) - Web Content Accessibility Guidelines 1.0 (1999) - Web Content Accessibility Guidelines 2.0 (2008) • Section 508 Standards - Published in 2000 to accompany Section 508 of the Rehabilitation Act (requires federal agencies to procure accessible IT) - Covers a broader scope of IT, not just Web - Many states & higher education institutions have adopted either WCAG 2.0 or Section 508 as their own standard for IT accessibility 11
  • 12. Basic Accessibility Considerations Consistency throughout the application • Visual consistency • Functional consistency • Proper use of elements
  • 13. Basic Accessibility Considerations Keyboard operability • Be able to navigate to all focusable elements • Be able to fully perform all applicable functions • Links, Forms controls, Menu, Expand/collapse, Carousel, Modal, Custom widgets, etc. • Be able to always to see the visual focus indicator • Logical tab order • Shortcut keys alone do not make application accessible
  • 14. Basic Accessibility Considerations ARIA Landmarks • Integrity of ARIA landmarks throughout the application • No orphaned content • Meaningful labels
  • 15. Basic Accessibility Considerations Heading Structure • Hierarchical • Meaningful • Inclusiveness
  • 16. Basic Accessibility Considerations Other considerations • Grouping relevant items - Ordered, unordered & definition lists • Graphic - Meaningful text for informational graphics - alt="" for all stylistic graphics • Forms - Meaningful form control labels - Verification and error handling
  • 17. What Helped us the Most
  • 18. Team Collaboration A core team driving accessibility • Internal evangelist - Champions accessibility and continually raises awareness - Enters issues and facilitates the process • Accessibility expert - Identifies and triages accessibility needs - Guides optimal solutions • Lead accessibility developers - Drives and solves issues in framework (vendor support and/or accessibility developer) - Organizes, triages, drives and solves issues in application (internal developer)
  • 19. Team Collaboration A support team enabling accessibility • Internal management - Makes accessibilty a company objective - Removes roadblocks and provides resources • Customers - Hold you accountable - Help as possible with resources and guidance • Internal company as a whole - Training sessions and documentation/wiki pages for accessibile design and coding - Everyone who touches the product (dev, QA, services, etc.) cares and contributes to accessibility
  • 20. Updating our Visual Design • Removed gradient backgrounds, to address contrast issues • Replaced all images with icon fonts which are more easily skinned, and are supported by screen readers • Increased white space*, to decrease information density • Increased default font size*, to increase readability * Except in our “Compact” theme, which is for users who prefer denser information and smaller fonts 20
  • 21. Focusing on Keyboard Access First • Helps ALL users • Is a place to start, so not overwhelmed • Can be tested internally, saving time and effort for customer and vendor team members • General visual and screen readers STILL important, but this was a good first step 21
  • 22. Upgrading to ExtJS 6+ • When we began, we were on ExtJS 4...it would be a LOT of work to address accessibility issues • ExtJS 6+ had signifigantly better accessibility features and enablements - SCSS support for themes and general visual needs - Focus component: Ext.util.Focusable, Ext.util.FocusableContainer, Ext.mixin.Observable - Keyboard navigation: Ext.mixin.Keyboard (6.2) - ARIA properties “baked” into core components 22
  • 24. { enableFocusableContainer: false, items: [ //Whatever buttons you want in here this.saveButton, this.cancelButton ] } 1. Prior to 6.2, fbar/panel.buttons config is a toolbar • This may not be what you want • Add enableFocusableContainer: false to allow tabbing on these buttons rather than arrow keys - If you are like us, the majority of cases are OK/Cancel (or some derivation) - Those should be “tabbable”
  • 25. me.bottomTb = new Ext.toolbar.Toolbar({ id: baseId + '-toolbar', ui: 'footer', dock: 'bottom', enableFocusableContainer: false, layout: { pack: 'center' }, items: [ me.msgButtons[0], me.msgButtons[1], me.msgButtons[2], me.msgButtons[3] ] }); 2. Ext.MessageBox may not be a good choice • For the reasons we just discussed, you would need to use arrow keys when more than one button is included (YESNO, YESNOCANCEL, etc.) • Either override this class with an updated fbar config, or create a custom Ext.Window class for more control
  • 26. 3. Custom components (particularly those created <=R4) • Review your custom components / overrides / extensions - You may have already tried to handle • Keyboard navigation • Focus handling to/from modal - Don’t “fight the system”, let the framework do its work • Watch your inline styling, and height/width configs - May interfere with focus indicators 26
  • 27. 4. It may be 2016, but browser / OS specific issues still exist • Now add different screen readers to the mix, yikes • Examples: - Keyboard navigation on Mac/FF (esp. toolbars) - NVDA vs JAWS site interpretation differences • Pick your battles…unless you have unlimited QA/Dev funds - Windows / FF / NVDA seems to be the most widely used combination 27 © 2016 NV Access. All rights reserved. Trademark The Mozilla Foundation
  • 28. &:hover { background: darken($innotas-secondary- icon-color, 20%); } // $innotas-light-background-color can be set by theme as an // example color: contrast($innotas-light-background- color, $innotas-color-on-lightbackground, $innotas-color-on-darkbackground, 30%); 5. Use SCSS to your advantage • Maintain contrast ratio equal to or greater than 4.5:1 - lighten / darken / contrast • Choose and define color palette variables • Be mindful of how those colors may interact / conflict
  • 29. if (this.hasFocus) { this.next().focus(); } this.close(); 6. Watch your focus on disposable components, particularly 6.2+ • This isn’t specific to accessibility, but it is a big “heads up” - Check if a field is focused before closing a form - Do not close windows/toasts/etc. before returning focus to parent - Check if <iframe> is focused before hiding or removing it • User gets “jerky” experience or “lost” • These become “hard” errors in 6.2 on destroy
  • 30. 7. You may need to be flexible in the components you use in your app, some may need to be replaced • Things like drag/drop are great, until you need to make it keyboard accessible • Some core components are “more” accessible than others • ExtJS allows huge flexibility in how you can use/nest components. Screen readers may not understand your implementation. • Ext.grid.plugin.RowEditing pre 6.2 will have screen reader issues • Locked grids - Duplicate DOM, screen readers don’t understand - FF has a fix in place 30
  • 31. 8. Many of the tools are tailored for “traditional” websites / “web applications” • AInspector or aXe may give you something like: - No H1 or H2 elements found on the page - Ensure <meta name="viewport"> does not disable text scaling and zooming • 6.2 does have possible options for this, but before that, disabling scale/zoom was a “requirement” • Understand the purpose, and review the guidelines referenced in these type of errors - Single page apps (e.g. ExtJS) don’t use this type of structure, so it doesn’t directly apply - That does not mean you should not be using appropriate ariaRole, ariaLabel, etc. configurations on your components • These are needed for screen readers to “map” your application 31
  • 32. //ideally more specific here, or implementation defaultFocus: ‘component’ //tbar, fbar, tools, buttons config to allow tabbing this.fbar = { enableFocusableContainer: false, items: [ this.okButton, this.cancelButton ] }; 9. Create your own panel, and window classes at a minimum, and extend from there • Make sure you handle focus, add a “safety net” to the base class • Add a handler for destroy, to make sure it does not have focus • Define toolbar behavior override if desired
  • 33. 10. Danger Zone • Ext.form.field.HtmlEditor, it’s an iFrame, all bets are off • Locked grids due to the duplicate DOM previously discussed • Checkboxes in Ext.grid.plugin.RowEditing • Custom Ext.form.field.ComboBox - Watch your aria tags (e.g. aria-autocomplete) • SR Ext.menu.Menu when there are submenus - Screen reader counts are of (item x of y) 33
  • 34. Q & A Any questions? 34
  • 35. Thanks for coming! Takeaway points • Don’t try to do this on your own...team collaboration ftw! • Upgrade sooner rather than later...the latest GA 6.2 is great (go Team Accessibility!) • This is a major undertaking, not just an afterthought or final polish on your app...plan that way
  • 36. References United Nations: Population Division of the Department of Economic and Social Affairs of the United Nations Secretariat - World Population Prospects: The 2008 Revision (http://www.un.org/esa/population/publications/wpp2006/wpp2006.htm) 2010 US Census: Bernstein, Robert, “Nearly 1 in 5 People Have a Disability in the U.S., Census Bureau Reports”, U.S. Census Bureau, Washington, DC, 2012 (https://www.census.gov/newsroom/releases/archives/miscellaneous/cb12-134.html) 36