- Posts: 18
- Thank you received: 1
Welcome to the LimeSurvey Community Forum
Ask the community, share ideas, and connect with other LimeSurvey users!
moreAccessibility
- cortxdp
- Offline
- New Member
Less
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.
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
- Topic Author
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 13648
- Thank you received: 2491
8 years 6 months ago #127690
by DenisChenu
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.
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
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.
- cortxdp
- Offline
- New Member
Less
More
- Posts: 18
- Thank you received: 1
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.
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.
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.
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.
Attachments:
The topic has been locked.
- DenisChenu
- Topic Author
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 13648
- Thank you received: 2491
8 years 6 months ago #127714
by DenisChenu
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.
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:
i update display:none to visibility:hidden .... just for 'better look' , bad idea here ....
JS do :
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 ?
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
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">
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); })
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
- Topic Author
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 13648
- Thank you received: 2491
8 years 6 months ago #127715
by DenisChenu
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.
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
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.
- cortxdp
- Offline
- New Member
Less
More
- Posts: 18
- Thank you received: 1
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."
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.
- cortxdp
- Offline
- New Member
Less
More
- Posts: 18
- Thank you received: 1
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 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
- Topic Author
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 13648
- Thank you received: 2491
8 years 6 months ago #127777
by DenisChenu
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.
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:
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
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
- Topic Author
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 13648
- Thank you received: 2491
8 years 5 months ago #128036
by DenisChenu
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.
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 .
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
- Topic Author
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 13648
- Thank you received: 2491
8 years 5 months ago #128134
by DenisChenu
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.
Replied by DenisChenu on topic moreAccessibility
Updated GIT:
- git.framasoft.org/SondagePro-LimeSurvey-...in/moreAccessibility
- bitbucket.org/shnoulle/ls-moreaccessibility
- github.com/Shnoulle/LS-moreAccessibility
- git.framasoft.org/SondagePro-LimeSurvey-...in/moreAccessibility
- bitbucket.org/shnoulle/ls-moreaccessibility
- github.com/Shnoulle/LS-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
- Topic Author
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 13648
- Thank you received: 2491
8 years 5 months ago #128353
by DenisChenu
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.
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
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
- Topic Author
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 13648
- Thank you received: 2491
8 years 5 months ago #128564
by DenisChenu
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.
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
- 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.