I am working on the RAMP COVID-19 initiative. We chose Discourse for our forum and are very happy with it.
A colleague and I have been looking at accessibility. I believe that we have addressed low-contrast issues by means of the admin CSS functionality. But we have some issues, says WAVE, that we are not sure we can tackle ourselves, as follows:
Linked image missing alternative text: these are to do with the avatar pictures. There is a descriptive title, but alt is empty.
There is a missing label in every page:
<div><input type="text"></div>
There is an empty heading in every page:
<div class="title"><h3></h3><!-- --></div>
There are numerous reported empty buttons, associated with svg.
There are empty links, e.g.: <a href="" aria-hidden="true" tabindex="-1" class="tabLoc"></a>
and <a href="" class="edit-topic" title="edit the title and category of this topic" data-ember-action="" data-ember-action-27="27"><svg class="fa d-icon d-icon-pencil-alt svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use xlink:href="#pencil-alt"></svg></a>.
There is an empty table header: <th data-sort-order="posters" class="posters"></th>
I will be very surprised if we are the only ones to have these, so I am wondering if WAVE is overthinking things or if perhaps we are missing a trick or two. Any help will be most appreciated.
Thanks for taking an interest. There is one I am not sure I can find (the empty heading) but the rest I pick up from the WAVE ācodeā functionality and can find (with some effort) with the F12 inspector.
I am not sure timezones are on our side (I am in the UK, UTC+01:00) but I would be happy to go on a Teams or similar call to demonstrate, if helpful.
Some screen readers are properly ignoring avatars, but others are reading the name/username twice because of this.
I made a PR to remove the title attribute from post avatars:
This is the input where we show the URL to copy and share, PR to add an aria label here:
I couldnāt find this oneā¦ might be based on site settings? need to look a little more
We donāt label this for sighted users because we can glance at the column and make an assumption about its contentsā¦ thatās a lot harder to do if you canāt seeā¦ adding a label for screen readers makes sense:
The remaining issues I didnāt cover are button-related, I still need to look into thoseā¦
The clever trick I thought of late is to just test the colours page for accessibility.
We then made a large number of changes using the CSS editor (admin/customize/themes/3/common/scss/edit) that I am not sure how to pass on (I can copy-paste, but I am not sure thatās what you want nor if you want it on this thread). I think if we could see the other colours mentioned (e.g. var(āprimary-medium)) on a high-level interface, things may become easier. E.g. a classic one was #919191 ā #595959, but my method just treats symptoms that I somehow see when traversing pages (and then again the dynamic nature of the āsiteā means that what passes today may not pass tomorrow).
Happy to try in a different fashion too, just let me know, though at no point will I be able to run a demo service, check out code etc.
I should also note that I could not fix admin/upgrade at all (and it has numerous contrast issues); I am not sure if it does not follow CSS or what the reason is.
My recollection is the admin side of Discourse has separate (harder to edit) style sheets to make it harder for people to accidentally lock themselves out of a usable admin interface with CSS changes.
I fell a bit behind with this, though we upgraded the forum. But thought to reply to the people who took the time (many thanks!) to look into this thread.
Thanks. If I click on your link, Wave finds 13 accessibility (low contrast) issues, but not on the colours themselves. Thatās because, unlike the colours page, it does not show how they are used (as background or foreground with lettering).
Let me know how I can help; it does have many contrast errors.
In rated posts (not sure how well adopted this is across Discourse, it is an extension that @angus kindly developed for us): Missing form label
Numerous (40 in the page I am looking at, with two users rating it) instances looking like this: <input class=" disabled" type="radio" value="1" checked="" disabled="">. Thatās under <span class="star-rating">.