Comments (4)
Hey!
I'm the primary maintainer of a11y.js.
Is your thing part of IBM Watson or is the name coincidence?
I love what you're doing here, but curious why a separate project as opposed to working on one project?
It appears we started out at the same time (October 2014). My first commits to the (back then private) repository were in early October and that was already a couple of weeks after I started investigating sequential navigation (a.k.a. "focus handling"). When I started the thing, there was no project going in the direction I wanted, so I created my own.
I'm by no means an accessibility expert. I'm in the process of diving into this space.
ally.js is the result of pretty extensive browser tests (see the tests directory). In other words, I first test the environment, then implement what I need.
Development speed is hampered by this being a spare-time project, as opposed to full-time job. Additionally I take every other week to document my findings in preparation for an in-depth article about "focus" to have a basis for talks with browser vendors and specification authors. I've already begun filing issues and have quite a few more in the pipeline.
This is all about focus and sequential navigation at this point. I haven't begun working on WAI ARIA stuff - although I do have some rough ideas scribbled down locally. The general, high-level goals are outlined in the Readme. I wanted to explore this space and make it readily available to the broader masses, people who are not necessarily concerned with A11Y. I wanted to make this stuff "easy".
I did not plan on maintaining this project myself. As people are rather reluctant to join another project, my (probably rather naive) idea was to talk to the jQuery Foundation about taking things over, once the project reached "critical mass" (whatever that may be).
I'm not concerned with getting things done quickly or focus on performance or absolute efficiency. I don't care about Internet Explorer older than 10 at this point. I want things to be done properly and in a way that anyone could understand what is going on. Hence the rather expressive code and comments.
I wanted to start out with an AMD structure from which any functionality can be pulled into use when required - as opposed to the all-encompassing build that is is jQuery. I'm aware that this won't help the majority of people (as many still clone static files, rather than use a package manager and script loader). This is something I wanted to address "later" (actually I wanted @asciidisco to take care of that, but he seems to have a flourishing life outside of my open source projects… ;).
My goals are manifold:
- work out what needs to be improved in browsers
- work out what needs specification / clarification thereof
- fix/work-around browser quirks where possible and necessary
- provide a central project covering generic accessibility concerns for other projects to rely on
- hand my work off to some sort of authority (e.g. jQuery Foundation) so it doesn't get neglected in the future
- there are no and must be no financial and or personal gains at play
Why don't we combine forces and work together?
I welcome it, I don't see a need to "compete" on this. I've laid out where I come from and where I'm headed. I'd appreciate you doing the same - via mail, if you want it to remain private.
If your work belongs to IBM, how is this going to work? I see it's MIT (which is pretty much the only license I'd consider for a project like this), but don't you Americans have some other weird copy right and legal system? (Sorry, I'm German, I don't know if this is going to be a problem…)
As things stand right now, ally and a11y cover different topics. From a code volume and feature perspective my ally seems to be far ahead. From a project management perspective your a11y is light years ahead.
I haven't yet put much thought into how I'd want to handle ARIA attributes in the future. So far I've only mapped the attribute values (much like your aria-states.yml) and use that to feed jQuery's attribute hooks and some custom attribute toggle functions (located in my apps, not yet moved to ally.js).
My personal roadmap for the upcoming weeks roughly looks like this:
- file the remaining browser bugs
- finish writing the article about focus (in all its facets)
- get to milestone 0.1.0 (i.e. necessary project management for a proper release)
- dive into keyboard interaction laid out by WAI ARIA Practices
in other words: I'm not in a hurry :D
from ally.js.
I am the UI Architect from IBM Watson, so not a coincidence. We wrote and open-sourced a11y.js
not with the goal of providing a way of working (initially) with states in an accessible way in order to allow us to develop components for a pattern library we are working on.
My work does belong to IBM, but it is 100% an open-source project with no goal of financial or personal gain. Our legal system is weird, no doubt, but it is free and open source software so if we would work together, it'd be just like working with anyone else on a project with the exception that the "other" person happens to be a giant tech company (although in reality, you'd be working specifically with me).
I think in terms of structure of the project, we both want very similar things; we want to be library independent and be a library in itself to assist with accessibility that other things can build on or directly use. I believe that we both started rom different ends but both can live in the same project. a11y.js
is designed to have sub-modules and I always intended on expanding it once the next need in our work presented itself; having focus, navigation, and polyfills are perfectly reasonable sub-modules to have as well as states.
I think the one architectural place where we differ is I'm not wedded to requiring an AMD structure for the project; I'm much more interested in providing a single library that can present itself in various ways, be it AMD loading, ES6 Modules, or being used straight from a window
object. I think that's something we can overcome though.
If you'd like to move this to email, shoot me one at the address I tweeted at you.
from ally.js.
To get the big question out of the way: do you me to join your project, or are you ok with joining mine? For some reason I'd prefer to stay out of any corporation's way. (I would not need to have the project hosted at medialize or call it ally.js or a11y.js)
I am the UI Architect from IBM Watson, so not a coincidence.
For context, I work on the setup and configuration UI of Qivicon, the Smart Home platform of Deutsche Telekom. While this project is used in Telekom's software, ally is my own thing, Detsche Telekom has no rights to anything.
I think the one architectural place where we differ is I'm not wedded to requiring an AMD structure for the project; I'm much more interested in providing a single library that can present itself in various ways, be it AMD loading, ES6 Modules, or being used straight from a window object. I think that's something we can overcome though.
I want the internals to be AMD and I want people to be able to use that structure if they want to. A build step would resolve the dependencies and build a single distributable file (or multiple, if we want to split things into extensions). This is the way jQuery is now setup and the structure I've been aiming for for a long time now (with URI.js, long before ally was born). That build step would wrap things in UMD, making it accessible to most environments. Really I don't care if it is AMD, CJS or ES6 internally. I just started with AMD because it's what we use at work and I'm most familiar with in the frontend space… I don't think we differ too much on the architecture regarding the end goal, do we?
If you'd like to move this to email, shoot me one at the address I tweeted at you.
I've got nothing to hide. If we discuss this publicly others can join the discussion, or read up later… no?
from ally.js.
I'm closing this issue because it's become obsolete. @Snugug and I talked privately and decided to discuss possible next steps once he's got the time to do so (which I am looking forward to!).
from ally.js.
Related Issues (20)
- ally.maintain.tabFocus breaks tab in Android + Chrome HOT 6
- Error setting up focusWithin HOT 1
- Wrong focus-source on Chrome on first Input element HOT 1
- Radio groups are not considered when maintaining tab focus
- ally.query.tabsequence possible string comparison of tabindex
- Improve visuallyhidden class further HOT 4
- Fix for Firefox accidentally triggering click after focus change on space HOT 8
- Allow Option to Pass Array of Elements to Maintain Components HOT 5
- Error on Import when Running CreateReactApp Test HOT 3
- Webpack bundle
- How to trap tab focus in element but allow tabbing to browser UI? HOT 4
- Current project status HOT 1
- Feature Request(?): Ability to run the browser support tests explicitly HOT 4
- Shadow DOM elements not identified correctly as contained by a parent element for maintain.disabled
- iOS 10.3 - 11.0 ally.maintain.tabFocus OSK (OnScreenKeyboard) shows and disappear for some milliseconds HOT 1
- Dialog content not focused when opened in Mac / VoiceOver
- Platform.js vulnerability issue HOT 1
- ally.maintain.tabFocus throws error when pressing Tab inside a dialog without focusable elements
- Cannot read property '0' of null in detect-focus
- Is this library dead?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ally.js.