Have a look at `romeovs/react-a11y`, possibly for v1.0.0
romeovs opened this issue · 2 comments
Hi guys,
I really like the work you've been doing on react-a11y
. I think the problem it
is trying to solve is an important one and I think it does a great job solving
it.
However, after looking at the source code, I felt the project could move faster
if it were built with more modularity in mind.
After forking the project to work on some of the open issues (I've created some
pull requests), I felt that it would be more feasible to do a total rewrite
(starting from you code) than to attempt to change the architecture bit by bit.
So I did!
Take a look at my repo. You'll see I've
changed quite a bit. I've tried to document the changes as clearly as possible in the
README, but here is the gist of it:
- Rules are now all in separate files, which makes them a lot more maintainable.
- Rules are pluggable, other people can write their own plugins to add more
rules. react-a11y
now usesReactDOM.finDOMNode
instead of
document.getElementById
, because this caused a lot of issues (#54, #55, #77,
#85, #102).- It is now possible to use
react-a11y
on the server-side with no problems!
The tests reflect this. - Rule tests are generated automatically from the rule definititions. Rules can
specify examples that should pass or fail, and these examples are used in the tests. - Rule docs are generated automatically from the rule definitions in the same
way the rule tests are. - The api has changed a lot, but the old options still work (with a deprecation
warning). The defaults for the new options are based on their old
counterparts. - Rule warnings have an accompanying url that points to an article that
describes the error in more depth. - There are no dependencies.
- Tests now run both in node with
mocha
and in the browser withkarma
.
I incorporated a lot of your code of course, mainly from your rules (as well as
some rules from eslint-plugin-jsx-a11y).
I hope you like the work I did. It would be nice if we could find a way for
these changes to be moved back into this fork (as a next major version for
example). I would love to remain a contributor so I can help maintain the new
codebase.
Please let me know if you feel the same about merging the forks, and how you
think we should go about it!
Anyways, keep up the good work!
wow this is awesome, +1 to this
All of the changes made in romeovs's fork have been merged and included in v1.0.0! 🎆 Please update to v1.0.0 to receive all these wonderful improvements!