-
Notifications
You must be signed in to change notification settings - Fork 12.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update accessibility #6133
Comments
@dylanb It might be good to cite the specific location(s) where the claim is made, this way an interested developer can find & fix the issue and issue a PR |
Deleted my prior comment. @dylanb - as an issue description, I think you know it should have better information in it so that action could be taken @davegandy - The claim made in the footer of the http://fontawesome.io/ website which says " Screen Reader Compatible" is demonstrably false. Given the icon fa-bed (http://fontawesome.io/icon/bed/) Using the following markup: It creates CSS generated content: "\f236"; There are three accessibility problems that may result:
TL;DR: @dylanb is right. Your claim of being "Screen Reader Compatible" is inaccurate. I recommend removing this claim and improving documentation so people understand the accessibility implications of icon fonts. |
+1 what @karlgroves said :-) |
As far as I can tell from the above points, the statement compatible is still valid. It seems that accessibility needs more docs. |
@dylanb Sorry for this bug but honestly I didn't like your opening post, I found it a little bit aggressive. @karlgroves thanks for the very detailed explanation. That claim is probably there because in the past icon fonts didn't use Please take a look #389, including my comments there |
@karlgroves wouldn't a simple So something like this: I've made a testcase on GitHub which I've tested successfully in VoiceOver on OS X 10.10 with Safari 8. |
+1, @MichielBijl for |
"1. (and this is @dylanb's point) Screen readers may read that CSS generated content." With the exception of IE, most browsers (used in conjunction with screen readers) expose CSS generated content through the accessibility layer. |
Just to confirm and / or clarify a few things:
These issues are not specific to FontAwesome, but apply to font based icon sets in general. The first two are solvable through some (perfectly reasonable) effort on the developer's end. Since the average dev is not going to automatically understand all this, it would be good if these issues and approaches were documented. Not just for FontAwesome, but for the other icon sets as well (icomoon.io would be a good place). So yes you can easily use FontAwesome without tripping up a screen reader, but it would help if the documentation didn't make it seem like this is the case out of the box and explain what the dev needs to do to get there. The third issue is not related to screen readers but still a big problem (which should also be documented). |
@hanshillen @karlgroves re Hans' item 2: how does the sr span inside the aria-hidden get seen? I thought that covered all descendants? |
@StommePoes you're absolutely right, I wasn't paying attention. have updated the snippet accordingly! |
@hanshillen thanks for your post We should definitely document this. Do you know if the edit: it seem it doesn't http://modernwebaccessibility.com/en/blog/demystify-speak-none |
@tagliala I've never heard of any of the CSS audio stuff working for anything other than nasty IE5.5 hacks :P |
@hanshillen thank you for the clarification. Seems that VO indeed shows the character, it just didn't say it. Might just be the characters in my example, though. |
Thanks to everyone working on this from a developer deploying Font Awesome who cares about accessibility. |
I've been working on a very big project with allot of emphasis on accessibility. While looking for a screen-reader friendly solution for font icons, I came across @hanshillen solution and really liked it. So I've implemented it in an angular directive - https://github.com/picardy/angular-fontawesome |
I'm re-reading this part by @hanshillen: "Since font icons use the :before pseudo selector, the inserted character will end up adjacent to the element with the aria-hidden attribute rather than inside of it." Maybe I'm misunderstanding pseudo-elements, but someone with a :before has a new first-child, not a new previous sibling. Someone with an :after has a new last-child, not a new next sibling. So logically thinking, aria-hidden on someone should cover all of someone's children, and :before and :after are children, not new siblings. Correct?
|
@StommePoes you just blew my mind. I might be looking at it all wrong. the problem is that i don't have a screen reader at hand, so QAing this is bit of a strech. I'll do some expirements and get back to you. |
I'll do some more testing as well |
First, let's clear the air. None of these issues are intentional misrepresentations. The world changed since that statement was originally made. And we're fixing those problems right now. Stepping back from this particular issue, I don't believe we've been given the benefit of the doubt here. Some particular folks appear to belive this was malicious on our part. It was not. Just like you would have for your own self, I'll challenge you to assume good motivations on the part of others. And know that your reputation follows you online. Especially here on GitHub. Folks in the community learn who the bad actors are and don't like dealing with them, no matter how smart they are and what they know. Seriously, think about it. If you think this might be written to you, it probably is. Your involvement is honestly appreciated. But please be polite, respectful, and assume good intentions of others. For context, when Font Awesome came out 4 years ago, making icons as fonts work with screen readers was a major priority. And it worked well. Since then, the world changed. Screen readers changed, but Font Awesome didn't keep up. Going forward, vetted accessibility issues will be given priority for any subsequent release. It's not been enough of a priority lately, and we're changing that. We really do appreciate you experience, knowledge, and expertise. Thank you for helping out the project, and for helping the literally millions of folks that use this. |
I think the responsiveness of the folks replying showed right away that someone at FA cares. Otherwise this issue would have languished as one of many moldering github issues. Instead, it's got good debate, exchange of code techniques, and open discussion. Seems to reflect well on the FA folks. |
Amen to that. |
Could someone please provide feedback on: 1. Using title attribute vs "sr-only"<span class="fa fa-icon" aria-hidden="true"></span>
<span class="fa-sr-only">Icon</span> vs <span class="fa fa-icon" aria-hidden="true" title="Icon"></span> 2. Using
|
@tagliala - |
So there are lots of use cases here, covered extensively in #8879. Check there to review all use cases. For the simplest case where there is semantic meaning you would like read to the user, here's what we're proposing.
We're planning in using the the same class as Bootstrap ( |
* adding accessibility informational page * adding in accessibility-minded examples * adding accessibility practices to icon markup example * updating doc site icons with accessibility best practices * updating homepage with accessibility information Fix #6133
* adding accessibility informational page * adding in accessibility-minded examples * adding accessibility practices to icon markup example * updating doc site icons with accessibility best practices * updating homepage with accessibility information Fix #6133
* adding accessibility informational page * adding in accessibility-minded examples * adding accessibility practices to icon markup example * updating doc site icons with accessibility best practices * updating homepage with accessibility information Fix #6133
This has been added into the 4.6.0-wip branch. Closing. |
Hi again, could you please review https://github.com/FortAwesome/Font-Awesome/pull/8950/files ? Thanks! |
+1, Its not clear why the issue got closed. |
@techsethi because a documentation page about accessibility is there: http://fontawesome.io/accessibility/ |
Thanks to all who are participating in this discussion, I really appreciate the focus on making sure FA works for all users! |
How much work would need to build the fonts in a contextual way like https://design.google.com/icons/ where the glyphs change according to the context? For example when you write the word I just know the theory behind it and the idea, but sadly not the implementation. If this could be scripted, I imagine an utility where you provide imaged and matching words and you get a set of fonts where each letter gets translated into a slice of the image only when the word is completely written. this way instead of .fa-universal-access:before {
content: "\f29a";
} We could have .fa-universal-access:before {
content: "universal-access";
} Just imagine the benefits, if this utility where simple to use one could generate localized fonts or refine the wording for a specific use case and we would have a much more accessible web. Googles Material Icons provide |
Upon digging a little into Google's Material Icons I noticed that they use ligatures. To elaborate a little here is a test I did with the Material Design Icon Font. CSS .material-icons {
font-size: 100px;
&.accessibility:before {
content: 'accessibility';
}
&.accessibility-unicode:before {
content: '\e84e';
}
} HTML <div class="material-icons">
<span>accessibility</span>
</div>
<i class="material-icons accessibility"></i>
<i class="material-icons accessibility-unicode"></i> Result My point is that given that the only thing needed is to add the ligatures to the existing unicode glyph, the benefits are incredible compared to the amount of work devoted to adding the ligatures (which I suspect could be automated). EditI just saw this #8510. You guys are great!! |
This is an excellent thread! Very useful information in this post. |
Hi, could you please provide feedback here: #9566 ? Thanks! |
Please do two things:
The text was updated successfully, but these errors were encountered: