Welcome to the LimeSurvey Community Forum

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

moreAccessibility

  • DenisChenu
  • DenisChenu's Avatar Topic Author
  • Away
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
8 years 4 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
  • Away
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
8 years 4 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 4 months ago - 8 years 4 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 4 months ago by cortxdp.
The topic has been locked.
More
8 years 4 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
  • Away
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
8 years 4 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
  • Away
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
8 years 4 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
  • Away
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
8 years 4 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
  • Away
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
8 years 4 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
  • Away
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
8 years 4 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.
More
8 years 3 months ago #129261 by cortxdp
Replied by cortxdp on topic moreAccessibility
Hi,

I'm getting back on this after a while. I installed this new version (1.3.3) and it seems to bug all my question list with the "Other" field. I have a 500 error. If I disactivate the "other" option, the question is showing fine.
The last version I tested before this one was the 1.2.0.
The topic has been locked.
  • DenisChenu
  • DenisChenu's Avatar Topic Author
  • Away
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
8 years 3 months ago #129262 by DenisChenu
Replied by DenisChenu on topic moreAccessibility

cortxdp wrote: Hi,

I'm getting back on this after a while. I installed this new version (1.3.3) and it seems to bug all my question list with the "Other" field. I have a 500 error. If I disactivate the "other" option, the question is showing fine.
The last version I tested before this one was the 1.2.0.

Hi,

accessible.sondages.pro/22549?newtest=Y# seems to work for me .... did you deactivate your plugin ? Maybe some incompatibility if your plugin goes first.
Can you activate debug mode and return the infrmation provided for error 500 ?

Denis
PS : best is to use dedicated tracker : git.framasoft.org/SondagePro-LimeSurvey-...Accessibility/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 3 months ago #129267 by cortxdp
Replied by cortxdp on topic moreAccessibility
I'll try that to give more informations and log it in the tracker.
Thanks
The topic has been locked.

Lime-years ahead

Online-surveys for every purse and purpose