Welcome to the LimeSurvey Community Forum

Ask the community, share ideas, and connect with other LimeSurvey users!

moreAccessibility

More
8 years 6 months ago #127667 by cortxdp
Replied by cortxdp on topic moreAccessibility
I will take a quick look at the requests in the bug tracker. I found it hard to keep track of suggestions in the forum.

Do you want to improve on this plugin or to keep it small and make requests in the bug tracker instead for other things we talked like having a tag to put in template to generate the error list.
The topic has been locked.
  • DenisChenu
  • DenisChenu's Avatar Topic Author
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
8 years 6 months ago #127690 by DenisChenu
Replied by DenisChenu on topic moreAccessibility
The actual bugtracker for this plugin is : git.framasoft.org/SondagePro-LimeSurvey-...Accessibility/issues

aria-labelled-by for single question is here : git.framasoft.org/SondagePro-LimeSurvey-...037d0cdac3c5c9e1f84b

Actually : it's a plugin not directly linked with LimeSurvey : bug for LS must be put in LimeSurvey bug tracker.

Actually : there are only some bug for LimeSurvey core and accessibility ..... Then according to this bug report : LimeSurvey is very accessible .....
- bugs.limesurvey.org/view.php?id=9494 : 09494: Section 508 issue with class="hide label"
- bugs.limesurvey.org/view.php?id=9106 : 09106: Add some 'error' in tite and list error before showing question


I think i can fix LS core with labelling on question text ... but it's not suffisant... need aria for "help/dynamic help".

@Mazi : aria need HTML5 to be properly validate. And actually seems we need aria to proper fix this issues

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.
The topic has been locked.
More
8 years 6 months ago #127710 by cortxdp
Replied by cortxdp on topic moreAccessibility
We found problems with the « other » choice when using checkboxes and radiobuttons.

In details
The checkbox did not have any label associated. Instead, the label was associate with the text field. It seems that to solve some problem, they decided to put the class « don’t read » on the checkbox. It doesn’t work for me so the checkbox was read with no label. My suggestion is to get rid of this class and modify the code.

To solve this and to be constant, we change the label to be associate with the checkbox. Because a label can be associate with only one field with the « for » attribute, and we didn’t want to add another label, we added the aria-labeledby to the textbox. It points to the same label.

We did the same thing for the radio button « other ».

I put the file here if you want to add it to your plugin for more convinience. I think this one should be put in core too.

File Attachment:

File Name: patchAcces....php.txt
File Size:6 KB



As a note, I don’t fond a use for the « don’t read » class and I have seen it many time on the forum or bug tracker.
The topic has been locked.
  • DenisChenu
  • DenisChenu's Avatar Topic Author
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
8 years 6 months ago #127714 by DenisChenu
Replied by DenisChenu on topic moreAccessibility
Hi,

I think this 2 bug MUST be fixed in core . But want the best for this ;)
For checkbox / other : actually : we show it in javascript ...
without js:
Code:
<input class="checkbox other-checkbox dontread" style="visibility:hidden" name="841587X1918X41648othercbox" id="answer841587X1918X41648othercbox" type="checkbox">
        <label for="answer841587X1918X41648other" class="answertext">Other:</label>
        <input class="text " name="841587X1918X41648other" id="answer841587X1918X41648other" value="" type="text">
i update display:none to visibility:hidden .... just for 'better look' , bad idea here ....

JS do :
Code:
$('#answer841587X1918X41648othercbox').prop('aria-hidden', 'true').css('visibility','');$('#answer841587X1918X41648other').bind('keyup focusout',function(event){
 if ($.trim($(this).val()).length>0) { $("#answer841587X1918X41648othercbox").prop("checked",true); } else { $("#answer841587X1918X41648othercbox").prop("checked",false); }; $("#java841587X1918X41648other").val($(this).val());LEMflagMandOther("841587X1918X41648other",$('#answer841587X1918X41648othercbox').is(":checked")); checkconditions(this.value, this.name, this.type); 
})
BUT we are in HTML4, then aria-hidden don't work (and must be put in HTML).

The checkbox/other is used only in JS : we don't need it : it not used by PHP. Only answer841587X1918X41648other is used . Best is to remove it directly (first patch remove it, adding it in JS only).
This must be fixed in core .

For radio/other
Yes, actually : we have strange labelling here .
What is your advice for best accessibility ?
Code:
<input type="radio" value="-oth-"  id="answer841587X1917X41646-oth-" /><label for="answer841587X1917X41646">Other (actual other),</label>
<label for="answer841587X1917X41646othertext" class="hide">Please give detail</label><input type="text" id="answer841587X1917X41646othertext" value="" />

I look at your code. For best update of answer part, actully : i used DOMDocument() and not regexp. regexp is more unsecure i think (for LS update).

But still : i have to make a clean PULL request for core system with "question labelling" , really fix core . Maybe for LS3 ?

Denis
PS: if you have a github account : i make a repo on github :)

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.
The topic has been locked.
  • DenisChenu
  • DenisChenu's Avatar Topic Author
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
8 years 6 months ago #127715 by DenisChenu
Replied by DenisChenu on topic moreAccessibility
For the dontread .... i add this class to do some testing. SOmetimes it misplaced.

Better is to replace with aria-hidden="true" . Maybe in template.js ?

But i think i misplaced it in header of table .....

I test you plugin, OK, using aria-labelledby for input:text fix issue. A question : can we use aria-labelled-by with a HTML4 page.
If it work : we can add it before LimeSurvey 3.0. Just see if Carsten is OK, i make a feature request/bug report.

Denis

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.
The topic has been locked.
More
8 years 6 months ago - 8 years 6 months ago #127752 by cortxdp
Replied by cortxdp on topic moreAccessibility
Aria attributes are working with HTML4. Screen readers that support aria propertiees/attributes will read them. The only probem is that they don't validate with the w3c validator. Since it is functionnal, the validation errors are not a problem.

www.w3.org/TR/aria-in-html/
"2.8 ARIA validation

The easiest method is to use the HTML5 DOCTYPE with ARIA markup and validate using the W3C Nu Markup Checker. ARIA works equally well with any other DOCTYPE, but validation tools will produce errors when they encounter ARIA markup as the associated DTDs have not been updated to recognise ARIA markup and it is unlikely they ever will be.

These validation errors in versions of HTML prior of HTML5 are in no way indicative of ARIA creating any real world accessibility problems nor do they mean there will be a negative user experience. They are merely the result of old automated validation tests that do not accommodate ARIA accessibility annotations."
Last edit: 8 years 6 months ago by cortxdp.
The topic has been locked.
More
8 years 6 months ago #127754 by cortxdp
Replied by cortxdp on topic moreAccessibility
As I understand, Don't read was used to hide the checkbox so the only fields that was saw by screen raders was the textfield.
The JS is used to check and uncheck the box whether there's something in the textfield. That is fine.
But there is no need to hide the checkbox.
I'm no sure of the correct way to code it, but the result must be simple, the less javascript is needed the better. That's why I proposed
this (in pseudocode)

[Checkbox] [label (for checkbox)] [textfield(aria-labelledby the label)]
same thing for radio button
[radiobutton][label (for radiobutton)] [textfield(aria-labelledby the label)]

With this, we don't need to mess with "visibility:hidden" and other CSS apparatus anymore, wich mean better support by browsers and assistive technologies in the long run.
The topic has been locked.
  • DenisChenu
  • DenisChenu's Avatar Topic Author
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
8 years 6 months ago #127777 by DenisChenu
Replied by DenisChenu on topic moreAccessibility
Hi,

For checkbox :
visibility:hidden is OK too for screen browser (and i think it's best for usuability): we don't need this radio. We must add 'readonly' and 'tabindex=-1' and aria-hidden=true.
code:
Code:
<input type=checkbox readonly=readonly tabindex=-1 aria-hidden=true><label for='other'>Other :</label><input type='text' value='' id='other' />

For radio : i try to improve core, think your solution is OK.

We have Dev discussion tomorrow. I ask if we add aria-labelled-by in 2.5 or not. And add 'single question' label in core. Adding labelled-by 'help' 'tip' in a core plugin.

Denis

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.
The topic has been locked.
  • DenisChenu
  • DenisChenu's Avatar Topic Author
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
8 years 5 months ago #128036 by DenisChenu
Replied by DenisChenu on topic moreAccessibility
Hi,

Updated the plugin , wait for publishing because i use bitbucket.org/archon810/smartdomdocument and i'm unsure of the licencing here.

But new system can be tested here:
- Radio list : accessible.sondages.pro/22549?newtest=Y#
- Multiple choice : accessible.sondages.pro/76475?newtest=Y#

I have to update the demo to add english .

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.
The topic has been locked.
  • DenisChenu
  • DenisChenu's Avatar Topic Author
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
8 years 5 months ago #128134 by DenisChenu
Replied by DenisChenu on topic moreAccessibility

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.
The topic has been locked.
  • DenisChenu
  • DenisChenu's Avatar Topic Author
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
8 years 5 months ago #128353 by DenisChenu
Replied by DenisChenu on topic moreAccessibility
Updated

Fix : use div , not span for help and questionhelp wrapper
Feature : allow to use role=group and radiogroup and aria-labelledBy for list of questiin in replace of fieldset with legend. Set by default : don't break existing template.

git.framasoft.org/SondagePro-LimeSurvey-...4efc52617838670c3172

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.
The topic has been locked.
  • DenisChenu
  • DenisChenu's Avatar Topic Author
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
8 years 5 months ago #128564 by DenisChenu
Replied by DenisChenu on topic moreAccessibility
Updated
- Add roles and aria-labelledby for arrays of answers (radio, text and checkbox)

Not for Array by column , some fix to do for Array dual scale .

Commit :
git.framasoft.org/SondagePro-LimeSurvey-...469b64710a3a5c1259d2

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member, professional service on demand , plugin development .
I don't answer to private message.
The topic has been locked.

Lime-years ahead

Online-surveys for every purse and purpose