Tota11y
khan.github.io
khan.github.io
I built this utility with the help of two colleagues[0][1] after working on accessibility at Khan Academy for a few weeks, and seeing first-hand the process of evangelizing accessibility on a dev team. Our automated tests were far from approachable (and became more annoying than helpful), so we built tota11y to make the manual testing experience more interactive and educational (we like teaching things).
I touch on this in our engineering blog [2]
Anyway, super thrilled to see tota11y near the top of HN this morning, and happy to answer any questions you may have.
[0]: https://twitter.com/himichelletodd
Love the work Alice & co are doing. We're big users of Accessibility Developer Tools (https://github.com/GoogleChrome/accessibility-developer-tool...) at Khan Academy both as part of our automated testing process and now as part of tota11y.
Really excited to see it to make its way into DevTools proper! Been rocking the extension for a few months now.
The report could then be shared with web designers who use an insufficient contrast ratio between their background and their text for instance, no need to be visually impaired to be bothered by sites who do that kind of stuff, and they are way too many.
[0]: http://nibbler.silktide.com/
[1]: http://pa11y.org/
[2] https://chrome.google.com/webstore/detail/wave-evaluation-to...
I have terrible vision. One of my pet peeves is when I go to a website on my phone through safari that doesn't allow me to zoom the text. For those occasions, I came across a JavaScript bookmark that I created on my phone that runs to undo whatever is preventing me from zooming in.
I'm not a web developer (I do desktop/server software development), so I have no idea how or why certain pages implement this policy/style. It just seems a little arbitrary to choose a font size for your site and not allow visitors to zoom-in in case they have trouble reading the text.
My workaround includes checking the window width with JQuery and changing the fixed status box (originally on the right side of the page) to floating at the top should the width be below a certain margin.
Is this an acceptable solution?
(I am just beginning web dev in lisp)
But that's how iOS want it. If they made webapps that performant then they'd have trouble imprisoning everyone in the App Store.
Would love to hear from someone who's actually familiar with what's going on though.
[0] http://updates.html5rocks.com/2012/09/Stacking-Changes-Comin...
[1] https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Under...
Even 'zoom' on fixed elements as dastardly as it looks is easier to read than text that is too small.
That is exactly what is disabled when authors disable zoom via the meta property.
No solution is perfect, but allowing zooming is simple and a huge win for me. (Even if the site still has a sticky header that wont get out of the way...)
- Open Chrome (or Chrome Beta) on Android.
- Settings -> Accessibility
- Force enable zoom (check).
Sites may need to be reloaded after applying this setting.
I'm far sighted, so my phone is literally the hardest thing for me to use much of the time. One of the worst offenders was the Facebook app, which didn't seem to even follow Android's setting for using larger fonts. I've since stopped using the FB app (way too much battery usage), and just use the mobile site, which isn't much better in terms of usability.
While minimised, the tab could display a score like A+ - this could incentivise websites to permanently present it on their pages as a badge of pride (while ensuring visibility to any changes that degrade the score).
Secondly, if you link to the project within the maximised tab, you'll likely see greater adoption.
It seems like it would just turn into unnecessary bragging for the site owner. I wonder if the scoring would still be useful for development though, or if they would just try to fix as many problems as possible anyway.
Very handy having things like these as bookmarks.
HTML_CodeSniffer is significantly more comprehensive than tota11y, so I encourage everyone reading this to also check out corney91's link.
tota11y takes more of a visualization approach, because in our experience being greeted with several dozen errors which we've never seen before didn't motivate us to keep the site accessible. My aim was to make the experience more interactive while explaining errors (and fixes!) as best I can.
We're still figuring out where tota11y fits in this great big world of a11y testing, but so far folks have responded well to this approach.
The script will be loaded only if an admin user is logged. So you can rest assured this will not annoy your users.
edit: Never mind, made a quick one for myself seeing that's MIT licensed https://gist.github.com/liviu-/62e8ce91b8723ef1a10a
Userscript is an awesome idea, thanks for taking the time to build this out. Is this something that will work in all browsers? What's the installation process like? Perhaps we can build one of those into the project page as well.
Perhaps we can detect if a popular userscript manager is installed and provide a one-click link that way. Not sure if this is possible though.
https://www.chromium.org/developers/design-documents/user-sc...
"This color combination causes mild problems for 15% of people and severe problems for 5%. Consider X and Y to reduce impact to 3%"
http://www.color-blindness.com/2008/10/02/color-blindness-si...
If you want to test this on your own, http://colororacle.org/ acts as a screen overlay so you can load any sort of application, web page, etc. and hit a hot-key to see what it looks like with each of the different types of color blindness.
http://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contr...
So if you pass WCAG color contrast checks, you'll be accessible to users with color deficiency as well as low vision.
https://github.com/Khan/tota11y/blob/952427485a49bde0f498e9d...
https://github.com/GoogleChrome/accessibility-developer-tool...
Definitely a good feature request
I've heard of some ways to visualize this with SVG filters - so this will be coming soon.
Still thinking of creative ways to find and label the errors, rather than just showing the user how the page will look under a certain type of color-blindess.
So it is complaining that we have a link (A tag) with an image within it. The image has an alt tag. But the addon is claiming the A tag is "empty" and that I should add "screen reader text."
Some googling around suggests that adding "screen reader text" is unreliable since many unrendered texts aren't rendered by screen readers either, and on top of that it can cause element positioning issues.
So why is the alt text unacceptable "text" for within an A tag for when the image isn't rendered? Isn't that the entire point of the alt tag, to provide text for a non-rendered image?
This is a known bug (https://github.com/Khan/tota11y/issues/1) that comes from upstream (https://github.com/GoogleChrome/accessibility-developer-tool...) and will hopefully be fixed soon.
As for your notes on screen-reader text: you can "hide" it by not actually hiding it, but placing it off the side of the page. This will be picked up by screen-readers and will not cause any positioning issues.
We use the following snippet all over Khan Academy. Bootstrap 3 uses it as well.
.sr-only {
border: 0;
clip: rect(0,0,0,0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
}
So I'd like to assure you that your image link is good to go (assuming the alt-text is good!). Sorry for the troubles.Great project!
At Khan Academy we use Chrome's Accessibility Developer Tools (https://github.com/GoogleChrome/accessibility-developer-tool...) as part of our testing infrastructure. A few of us also have the browser extension to do some manual testing, which is what tota11y is for.
tota11y uses Accessibility Developer Tools internally.
> "[...] In order to maintain a consistent outline of the page for assistive technologies..."
1.2.1
1.3
1.3.1.1
First you read h1, find the right header. Then h2 with 2 levels of detail, which hits h2 and h3. You miss the sub-section you wanted because it was marked h4 instead of h3.
It's a broken tree structure... that'll cause problems any time somebody wants to do a logical traversal.
[1]: http://www.w3.org/TR/WCAG20-TECHS/H42.html [2]: http://www.w3.org/TR/WCAG20-TECHS/H30.html
As others have mentioned, it's likely flagged as an accessibility issue since having an h4 follow an h2 indicates a broken document structure.
It's also probably included in the tool because things like that usually (though not always) mean that the developer is just using the h4 tag based on how it looks as opposed to actual semantic meaning, and the tool is designed to get you to put more thought into what you're actually building.
It's honestly probably not a big deal but it is an improper use of syntax and could mess with accessibility software in undesirable ways.
As a side note I know almost no one that cares about the semantic structure of an HTML document. It makes me sad. I miss XHTML's rigid structure.
The reason for this is because many screen-readers have keyboard shortcuts to jump from heading to heading. Many users will map out the page with this key-binding. Keeping the headings in a good order is very important.
That said, while it's a best practice to keep headings in a sensible order, skipping heading levels is not a WCAG AA violation.