Released: Apex 4X : The Comprehensive ARIA Development Suite

Apex 4X

 

4X is a comprehensive ARIA development suite that does not require prior knowledge of ARIA to implement. Moreover, it includes hundreds of advanced features specifically designed to enhance the power, performance, and versatility of accessible web technologies. 4X has been in private development for 5 years, is comprehensively organized to make it easily understandable, has been thoroughly tested, and is fully documented for ease of use. WhatSock.com is now the project home page of 4X.

 

Over the last 20 years as a blind developer, I have often pushed education as the primary goal to achieve widespread utilization of accessible development practices. In many ways since then, this turned out to be true. However, constant retroactive development is still necessary each day to fix bad practices by those who lack this type of education.

 

This conflict is everywhere, and the cause is simple. The concept of accessibility is often subjective and difficult to quantify, and training in the field of accessibility is expensive. Not just in cost, but also in time, effort, and in the difficulties of learning new ways to understand and think. It is impossible to expect that all developers will possess the time and resources necessary to achieve this everywhere equally.

 

There is therefore, and will likely always be, a titanic imbalance between the populations of those who require the use of accessible technologies, and the populations of those who have the required skills in accessibility to provide them. Though continued education will always be a critical component for achieving widespread adoption of accessible development, there is also a need to provide a means for achieving accessible development without requiring years of accessibility training in advance. This is what 4X is designed to do.

 

4X provides a comprehensive suite of ARIA related processes to make developing accessible technologies easier and more reliable and does not expose the accessibility layer where it can be casually changed by those who do not understand it. This makes it possible for developers who have no prior background in accessible development, to create and implement accessible web technologies regardless.

 

As with all things, nothing is ever foolproof, so it will always be possible for developers to build inaccessible technologies no matter how advanced their resources are to prevent this. Nevertheless, 4X will significantly improve the chances of successfully creating accessible technologies when combined with continued education in the field of accessible development.

 

Features

 

4X is specifically designed to minimize beginning to end-point processing.

 

This sounds complicated, but it really is not. Many common JavaScript APIs are designed around the use of a central object, where all processing occurs on a prototyped version of that object. This means that most of the functions called on that object recursively process through itself, running tests to validate the type of content it has, whether it consists of a markup string or a DOM node, and many other processes every time something is done with that object. In standard web pages, processing differences are slight and rarely noticeable. In more complex web applications however, the more recursive processing that occurs with heavy content, the less responsive the application can become.

 

4X minimizes all the steps that occur between the declarative statement to perform an action, and the performing of that action within the browser. When used within large scale web applications, this can be used to maintain speed and performance without sacrificing flexibility.

 

To ensure the best use of modern browser APIs, 4X automatically takes advantage of the latest API support for standard interactions. The Fetch API is used to handle dynamic modularization for shared components and the passing of custom props to external modules.

 

4X integrates with the MutationObserver interface, automatically combining standard event handling syntax with events triggered by observer objects. This makes it possible to use standard event binding declarations such as for "click" and "focus", to also include "add", "remove", "attributeChange", "contentChange", and "subTreeChange" with the same level of ease.

 

Two-way data binding is also supported within 4X, making it possible to reference the bound object from its partner object in either direction. For example, the Listbox module makes use of this functionality to bind each ARIA listbox option element with its associated select element option element to achieve automatic mirroring when one or the other is changed.

 

Automated flow control is built into the rendering processes for dynamic components within 4X, making it possible to apply accessible animation effects that do not negatively impact accessibility for screen reader and keyboard only users.

 

4X is fully extendable, making it possible to add or integrate any type of functionality as desired.

 

You can read about the hundreds of other features that 4X provides by viewing the Help docs within the Apex 4X download on GitHub.

 

Acknowledgements

 

As with any large-scale project, no one person can ever do everything alone. This is especially true for a blind developer like me, who cannot see what they are building.

 

I want to thank Angela Ricci for everything that she has done, she is a fantastic web designer, and none of the WhatSock resources would be as awesome as they are now without her considerable generosity and talent.

 

I also want to thank Laurence Lewis for all of his efforts in markup editing and supplementary styling, who has done as much work on the front-end as I have on the back. He is an exceptionally talented programmer and has made 4X a much richer project with his involvement. I could not have accomplished this without his contributions. ??

 

 

Bryan Garaventa

Accessibility Architect | Accessibility Engineer | Accessibility Consultant | Accessibility Project Manager | Web Accessibility SME

3 年

Hi, recently the available widgets section has been updated to reflect recent additions. All of the following ARIA widget templates are now available for immediate use. None of them require any prior knowledge of ARIA to implement. Accordions, Buttons, Checkboxes, Comboboxes, Datepickers, Dialogs, Drag and Drop, Footnotes, Grids, Listboxes, Menus, Popups, Radios, Sliders, Switches, Tabs, Tooltips, and Trees.

回复
Michael States

Software Engineer, Accessibility | Web Accessibility Specialist (WAS) Certified

3 年

This is game changing. How impressive! I had the honor of speaking with some of your colleagues today at LA. Hoping to join the team, fingers crossed! Keep up the great work, Bryan!

回复
Michael Gower

Senior Consultant in Accessibility at IBM

3 年

This kind of accessible, comprehensive library is the holy Grail, so thanks for all the effort trying to advance the cause! That said, a few comments... It took a few minutes to orient myself to the documentation versus the implementation examples. The main navigation doesn't distinguish cosmetically or programmatically between items that are logically (to me) parent/child, treating them all as peers. May want to work on that design. The first component example I tested, the Starlight Internal Content accordion, seems to have pretty buggy behaviour, both in its inexplicably inconsistent visual appearance (sections 1 and 2 in teal, section 3 in black) as well inconsistent, unpredictable interaction on Chrome (sometimes opens, sometimes collapses, sometimes delayed). This may just be a teething issue migrating to a new hosting site, or may be an indication it's not totally ready for prime time? Those quick, initial observations shouldn't detract from the ambition of this undertaking. I look forward to exploring more, and learning from a guiding force in accessible development!

回复
Phill Jenkins

Accessibility Executive at IBM Design

3 年

Thanks Bryan for contributing this to the "accessibility industry". Looking forward to understanding it more ??

回复
Laurence Lewis

Accessibility Senior Specialist at Telstra

3 年

Thanks for the amazing comment. I have learned so much from you over the years. Looking forward to working on more projects with you.

回复

要查看或添加评论,请登录

Bryan Garaventa的更多文章

社区洞察

其他会员也浏览了