Skip to content

Commit

Permalink
[4.0] [a11y] Correctly use aria-describedby
Browse files Browse the repository at this point in the history
For fields where there is a description we are trying to add an aria-describedby with a value of the _DESC language string.

Unfortunately the code was not doing that.

### Testing
Before applying the patch view the generated source of the search field in the article manager. It will display aria-describedby="filter[search]-desc"

After applying the patch it will correctly be
aria-describeby="Search in title and alias. Prefix with ID: or AUTHOR: to search for an article ID or article author."

The display of this text with a tooltip or similar is beyond the scope of this pr
  • Loading branch information
brianteeman committed Mar 19, 2019
1 parent ba44e5f commit 45cfc7b
Show file tree
Hide file tree
Showing 11 changed files with 11 additions and 11 deletions.
2 changes: 1 addition & 1 deletion layouts/joomla/form/field/accesslevel.php
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,6 @@
$attr .= $required ? ' required' : '';
$attr .= $autofocus ? ' autofocus' : '';
$attr .= $onchange ? ' onchange="' . $onchange . '"' : '';
$attr .= !empty($description) ? ' aria-describedby="' . $name . '-desc"' : '';
$attr .= !empty($description) ? 'aria-describedby="' . htmlspecialchars($description, ENT_COMPAT, 'UTF-8') . '"' : '';

echo HTMLHelper::_('access.level', $name, $value, $attr, $options, $id);
2 changes: 1 addition & 1 deletion layouts/joomla/form/field/calendar.php
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@
id="<?php echo $id; ?>"
name="<?php echo $name; ?>"
value="<?php echo htmlspecialchars(($value !== '0000-00-00 00:00:00') ? $value : '', ENT_COMPAT, 'UTF-8'); ?>"
<?php echo !empty($description) ? ' aria-describedby="' . $name . '-desc"' : ''; ?>
<?php echo !empty($description) ? 'aria-describedby="' . htmlspecialchars($description, ENT_COMPAT, 'UTF-8') . '"' : ''; ?>
<?php echo $attributes; ?>
<?php echo !empty($hint) ? 'placeholder="' . htmlspecialchars($hint, ENT_COMPAT, 'UTF-8') . '"' : ''; ?>
data-alt-value="<?php echo htmlspecialchars($value, ENT_COMPAT, 'UTF-8'); ?>" autocomplete="off">
Expand Down
2 changes: 1 addition & 1 deletion layouts/joomla/form/field/combo.php
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@
$attr .= !empty($readonly) ? ' readonly' : '';
$attr .= !empty($disabled) ? ' disabled' : '';
$attr .= !empty($required) ? ' required' : '';
$attr .= !empty($description) ? ' aria-describedby="' . $name . '-desc"' : '';
$attr .= !empty($description) ? 'aria-describedby="' . htmlspecialchars($description, ENT_COMPAT, 'UTF-8') . '"' : '';

// Initialize JavaScript field attributes.
$attr .= !empty($onchange) ? ' onchange="' . $onchange . '"' : '';
Expand Down
2 changes: 1 addition & 1 deletion layouts/joomla/form/field/email.php
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@
$attributes = array(
$spellcheck ? '' : 'spellcheck="false"',
!empty($size) ? 'size="' . $size . '"' : '',
!empty($description) ? 'aria-describedby="' . $name . '-desc"' : '',
!empty($description) ? 'aria-describedby="' . htmlspecialchars($description, ENT_COMPAT, 'UTF-8') . '"' : '',
$disabled ? 'disabled' : '',
$readonly ? 'readonly' : '',
$onchange ? 'onchange="' . $onchange . '"' : '',
Expand Down
2 changes: 1 addition & 1 deletion layouts/joomla/form/field/list.php
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
$attr .= $required ? ' required' : '';
$attr .= $autofocus ? ' autofocus' : '';
$attr .= $onchange ? ' onchange="' . $onchange . '"' : '';
$attr .= !empty($description) ? ' aria-describedby="' . $name . '-desc"' : '';
$attr .= !empty($description) ? 'aria-describedby="' . htmlspecialchars($description, ENT_COMPAT, 'UTF-8') . '"' : '';

// To avoid user's confusion, readonly="readonly" should imply disabled="disabled".
if ($readonly || $disabled)
Expand Down
2 changes: 1 addition & 1 deletion layouts/joomla/form/field/number.php
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@

$attributes = array(
!empty($class) ? 'class="form-control ' . $class . '"' : 'class="form-control"',
!empty($description) ? 'aria-describedby="' . $name . '-desc"' : '',
!empty($description) ? 'aria-describedby="' . htmlspecialchars($description, ENT_COMPAT, 'UTF-8') . '"' : '',
$disabled ? 'disabled' : '',
$readonly ? 'readonly' : '',
strlen($hint) ? 'placeholder="' . htmlspecialchars($hint, ENT_COMPAT, 'UTF-8') . '"' : '',
Expand Down
2 changes: 1 addition & 1 deletion layouts/joomla/form/field/range.php
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@

$attributes = array(
$class ? 'class="form-control ' . $class . '"' : 'class="form-control"',
!empty($description) ? 'aria-describedby="' . $name . '-desc"' : '',
!empty($description) ? 'aria-describedby="' . htmlspecialchars($description, ENT_COMPAT, 'UTF-8') . '"' : '',
$disabled ? 'disabled' : '',
$readonly ? 'readonly' : '',
!empty($onchange) ? 'onchange="' . $onchange . '"' : '',
Expand Down
2 changes: 1 addition & 1 deletion layouts/joomla/form/field/tel.php
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@

$attributes = array(
!empty($size) ? 'size="' . $size . '"' : '',
!empty($description) ? 'aria-describedby="' . $name . '-desc"' : '',
!empty($description) ? 'aria-describedby="' . htmlspecialchars($description, ENT_COMPAT, 'UTF-8') . '"' : '',
$disabled ? 'disabled' : '',
$readonly ? 'readonly' : '',
strlen($hint) ? 'placeholder="' . htmlspecialchars($hint, ENT_COMPAT, 'UTF-8') . '"' : '',
Expand Down
2 changes: 1 addition & 1 deletion layouts/joomla/form/field/text.php
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@
$attributes = array(
!empty($class) ? 'class="form-control ' . $class . '"' : 'class="form-control"',
!empty($size) ? 'size="' . $size . '"' : '',
!empty($description) ? 'aria-describedby="' . $name . '-desc"' : '',
!empty($description) ? 'aria-describeby="' . htmlspecialchars($description, ENT_COMPAT, 'UTF-8') . '"' : '',
$disabled ? 'disabled' : '',
$readonly ? 'readonly' : '',
$list,
Expand Down
2 changes: 1 addition & 1 deletion layouts/joomla/form/field/textarea.php
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@
$columns ?: '',
$rows ?: '',
!empty($class) ? 'class="form-control ' . $class . '"' : 'class="form-control"',
!empty($description) ? 'aria-describedby="' . $name . '-desc"' : '',
!empty($description) ? 'aria-describedby="' . htmlspecialchars($description, ENT_COMPAT, 'UTF-8') . '"' : '',
strlen($hint) ? 'placeholder="' . htmlspecialchars($hint, ENT_COMPAT, 'UTF-8') . '"' : '',
$disabled ? 'disabled' : '',
$readonly ? 'readonly' : '',
Expand Down
2 changes: 1 addition & 1 deletion layouts/joomla/form/field/url.php
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@

$attributes = array(
!empty($size) ? ' size="' . $size . '"' : '',
!empty($description) ? ' aria-describedby="' . $name . '-desc"' : '',
!empty($description) ? 'aria-describedby="' . htmlspecialchars($description, ENT_COMPAT, 'UTF-8') . '"' : '',
$disabled ? ' disabled' : '',
$readonly ? ' readonly' : '',
strlen($hint) ? ' placeholder="' . htmlspecialchars($hint, ENT_COMPAT, 'UTF-8') . '"' : '',
Expand Down

0 comments on commit 45cfc7b

Please sign in to comment.