Add aria-hidden="true" to all icons that exist only for design reasons

refs #8360
This commit is contained in:
Johannes Meyer 2015-02-12 13:47:00 +01:00
parent 3d0fbc833d
commit 9232c5cf22
26 changed files with 50 additions and 51 deletions

View File

@ -6,7 +6,7 @@
</div> </div>
<div class="form" data-base-target="layout"> <div class="form" data-base-target="layout">
<?php if ($requiresSetup): ?> <?php if ($requiresSetup): ?>
<p class="config-note"><?= sprintf( <p tabindex="0" class="config-note"><?= sprintf(
$this->translate( $this->translate(
'It appears that you did not configure Icinga Web 2 yet so it\'s not possible to log in without any defined ' 'It appears that you did not configure Icinga Web 2 yet so it\'s not possible to log in without any defined '
. 'authentication method. Please define a authentication method by following the instructions in the' . 'authentication method. Please define a authentication method by following the instructions in the'
@ -17,7 +17,7 @@
'</a>' '</a>'
); ?></p> ); ?></p>
<?php elseif ($requiresExternalAuth): ?> <?php elseif ($requiresExternalAuth): ?>
<p class="info-box"><span class="icon-info"></span><?= $this->translate( <p tabindex="0" class="info-box"><i aria-hidden="true" class="icon-info"></i><?= $this->translate(
'You\'re currently not authenticated using any of the web server\'s authentication mechanisms.' 'You\'re currently not authenticated using any of the web server\'s authentication mechanisms.'
. ' Make sure you\'ll configure such, otherwise you\'ll not be able to login.' . ' Make sure you\'ll configure such, otherwise you\'ll not be able to login.'
); ?></p> ); ?></p>

View File

@ -4,7 +4,7 @@
<div class="content" data-base-target="_next"> <div class="content" data-base-target="_next">
<p> <p>
<a href="<?= $this->href('/config/createAuthenticationBackend'); ?>"> <a href="<?= $this->href('/config/createAuthenticationBackend'); ?>">
<?= $this->icon('plus'); ?><?= $this->translate('Create A New Authentication Backend'); ?> <?= $this->icon('plus', null, array('aria-hidden' => 'true')); ?><?= $this->translate('Create A New Authentication Backend'); ?>
</a> </a>
</p> </p>
<?= $form; ?> <?= $form; ?>

View File

@ -4,7 +4,7 @@
<div class="content" data-base-target="_next"> <div class="content" data-base-target="_next">
<p> <p>
<a href="<?= $this->href('/config/createresource'); ?>"> <a href="<?= $this->href('/config/createresource'); ?>">
<?= $this->icon('plus'); ?> <?= $this->translate('Create A New Resource'); ?> <?= $this->icon('plus', null, array('aria-hidden' => 'true')); ?> <?= $this->translate('Create A New Resource'); ?>
</a> </a>
</p> </p>
<table class="action"> <table class="action">

View File

@ -25,7 +25,7 @@ class NoScriptApply extends Zend_Form_Decorator_Abstract
{ {
if ($content) { if ($content) {
$content .= '<noscript><button name="noscript_apply" style="margin-left: 0.5em;" type="submit" value="1">' $content .= '<noscript><button name="noscript_apply" style="margin-left: 0.5em;" type="submit" value="1">'
. Icinga::app()->getViewRenderer()->view->icon('refresh.png') . '&nbsp;' . t('Apply') . Icinga::app()->getViewRenderer()->view->icon('refresh.png', null, array('aria-hidden' => 'true')) . '&nbsp;' . t('Apply')
. '</button></noscript>'; . '</button></noscript>';
} }

View File

@ -16,7 +16,7 @@ class ForeignMenuItemRenderer implements MenuItemRenderer {
return sprintf( return sprintf(
'<a href="%s" target="_self">%s%s<span></span></a>', '<a href="%s" target="_self">%s%s<span></span></a>',
$menu->getUrl() ?: '#', $menu->getUrl() ?: '#',
$menu->getIcon() ? '<img src="' . Url::fromPath($menu->getIcon()) . '" class="icon" /> ' : '', $menu->getIcon() ? '<img aria-hidden="true" src="' . Url::fromPath($menu->getIcon()) . '" class="icon" /> ' : '',
htmlspecialchars($menu->getTitle()) htmlspecialchars($menu->getTitle())
); );
} }

View File

@ -80,7 +80,7 @@ class MonitoringMenuItemRenderer implements MenuItemRenderer {
} }
if ($menu->getIcon() && strpos($menu->getIcon(), '.') === false) { if ($menu->getIcon() && strpos($menu->getIcon(), '.') === false) {
return sprintf( return sprintf(
'%s <a href="%s" class="icon-%s">%s</a>', '%s <a href="%s"><i aria-hidden="true" class="icon-%s"></i>%s</a>',
$badge, $badge,
$menu->getUrl() ?: '#', $menu->getUrl() ?: '#',
$menu->getIcon(), $menu->getIcon(),
@ -92,7 +92,7 @@ class MonitoringMenuItemRenderer implements MenuItemRenderer {
'%s<a href="%s">%s%s<span></span></a>', '%s<a href="%s">%s%s<span></span></a>',
$badge, $badge,
$menu->getUrl() ?: '#', $menu->getUrl() ?: '#',
$menu->getIcon() ? '<img src="' . Url::fromPath($menu->getIcon()) . '" class="icon" /> ' : '', $menu->getIcon() ? '<img aria-hidden="true" src="' . Url::fromPath($menu->getIcon()) . '" class="icon" /> ' : '',
htmlspecialchars($menu->getTitle()) htmlspecialchars($menu->getTitle())
); );
} }

View File

@ -115,7 +115,7 @@ class MenuRenderer extends RecursiveIteratorIterator
} }
if ($child->getIcon() && strpos($child->getIcon(), '.') === false) { if ($child->getIcon() && strpos($child->getIcon(), '.') === false) {
return sprintf( return sprintf(
'<a href="%s" class="icon-%s">%s</a>', '<a href="%s"><i aria-hidden="true" class="icon-%s"></i>%s</a>',
$child->getUrl() ?: '#', $child->getUrl() ?: '#',
$child->getIcon(), $child->getIcon(),
htmlspecialchars($child->getTitle()) htmlspecialchars($child->getTitle())
@ -124,7 +124,9 @@ class MenuRenderer extends RecursiveIteratorIterator
return sprintf( return sprintf(
'<a href="%s">%s%s</a>', '<a href="%s">%s%s</a>',
$child->getUrl() ?: '#', $child->getUrl() ?: '#',
$child->getIcon() ? '<img src="' . Url::fromPath($child->getIcon()) . '" class="icon" /> ' : '', $child->getIcon()
? '<img aria-hidden="true" src="' . Url::fromPath($child->getIcon()) . '" class="icon" /> '
: '',
htmlspecialchars($child->getTitle()) htmlspecialchars($child->getTitle())
); );
} }

View File

@ -215,13 +215,9 @@ class Tab extends AbstractWidget
if ($this->icon !== null) { if ($this->icon !== null) {
if (strpos($this->icon, '.') === false) { if (strpos($this->icon, '.') === false) {
if ($tagParams && array_key_exists('class', $tagParams)) { $caption = $view->icon($this->icon, null, array('aria-hidden' => 'true')) . $caption;
$tagParams['class'] .= ' icon-' . $this->icon;
} else {
$tagParams['class'] = 'icon-' . $this->icon;
}
} else { } else {
$caption = $view->img($this->icon, array('class' => 'icon')) . $caption; $caption = $view->img($this->icon, array('aria-hidden' => 'true', 'class' => 'icon')) . $caption;
} }
} }
if ($this->url !== null) { if ($this->url !== null) {

View File

@ -35,7 +35,8 @@ class CheckNowCommandForm extends ObjectsCommandForm
'ignore' => true, 'ignore' => true,
'type' => 'submit', 'type' => 'submit',
'value' => $this->translate('Check now'), 'value' => $this->translate('Check now'),
'label' => '<i class="icon-reschedule"></i> ' . $this->translate('Check now'), 'label' => '<i aria-hidden="true" class="icon-reschedule"></i> '
. $this->translate('Check now'),
'decorators' => array('ViewHelper'), 'decorators' => array('ViewHelper'),
'escape' => false, 'escape' => false,
'class' => 'link-like' 'class' => 'link-like'

View File

@ -42,11 +42,11 @@
<span> <span>
<?php if ($this->trend->trend === 'up'): ?> <?php if ($this->trend->trend === 'up'): ?>
<?= $this->icon('up-open'); ?> <?= $this->icon('up-open', null, array('aria-hidden' => 'true')); ?>
<?php elseif ($this->trend->trend === 'unchanged'): ?> <?php elseif ($this->trend->trend === 'unchanged'): ?>
<?= $this->icon('right-open'); ?> <?= $this->icon('right-open', null, array('aria-hidden' => 'true')); ?>
<?php else: ?> <?php else: ?>
<?= $this->icon('down-open'); ?> <?= $this->icon('down-open', null, array('aria-hidden' => 'true')); ?>
<?php endif; ?> <?php endif; ?>
</span> </span>
</div> </div>

View File

@ -6,7 +6,7 @@
<div class="content" data-base-target="_next"> <div class="content" data-base-target="_next">
<p> <p>
<a href="<?= $this->href('/monitoring/config/createbackend'); ?>"> <a href="<?= $this->href('/monitoring/config/createbackend'); ?>">
<?= $this->icon('plus'); ?> <?= $this->translate('Create New Monitoring Backend'); ?> <?= $this->icon('plus', null, array('aria-hidden' => 'true')); ?> <?= $this->translate('Create New Monitoring Backend'); ?>
</a> </a>
</p> </p>
<table class="action"> <table class="action">
@ -38,7 +38,7 @@
<h1><?= $this->translate('Monitoring Instances') ?></h1> <h1><?= $this->translate('Monitoring Instances') ?></h1>
<p> <p>
<a href="<?= $this->href('/monitoring/config/createinstance'); ?>"> <a href="<?= $this->href('/monitoring/config/createinstance'); ?>">
<?= $this->icon('plus'); ?> <?= $this->translate('Create New Instance'); ?> <?= $this->icon('plus', null, array('aria-hidden' => 'true')); ?> <?= $this->translate('Create New Instance'); ?>
</a> </a>
</p> </p>
<table class="action"> <table class="action">

View File

@ -31,21 +31,21 @@
<div> <div>
<a href="<?= $rescheduleAllLink ?>"> <a href="<?= $rescheduleAllLink ?>">
<?= $this->icon('reschedule') ?> <?= $this->icon('reschedule', null, array('aria-hidden' => 'true')) ?>
<?= $this->translate('Reschedule host checks') ?> <?= $this->translate('Reschedule host checks') ?>
</a> </a>
</div> </div>
<div> <div>
<a href="<?= $downtimeAllLink ?>"> <a href="<?= $downtimeAllLink ?>">
<?= $this->icon('plug') ?> <?= $this->icon('plug', null, array('aria-hidden' => 'true')) ?>
<?= $this->translate('Schedule host downtimes') ?> <?= $this->translate('Schedule host downtimes') ?>
</a> </a>
</div> </div>
<div> <div>
<a href="<?= $processCheckResultAllLink; ?>"> <a href="<?= $processCheckResultAllLink; ?>">
<?= $this->icon('reply'); ?> <?= $this->icon('reply', null, array('aria-hidden' => 'true')); ?>
<?= $this->translate('Submit passive check results'); ?> <?= $this->translate('Submit passive check results'); ?>
</a> </a>
</div> </div>
@ -71,7 +71,7 @@
), ),
$unhandledCount $unhandledCount
) ?>"> ) ?>">
<?= $this->icon('plug') ?> <?= $this->icon('plug', null, array('aria-hidden' => 'true')) ?>
<?= sprintf( <?= sprintf(
$this->translatePlural( $this->translatePlural(
'Schedule downtime for unhandled host problem', 'Schedule downtime for unhandled host problem',
@ -91,7 +91,7 @@
), ),
$unhandledCount $unhandledCount
) ?>"> ) ?>">
<?= $this->icon('ok') ?> <?= $this->icon('ok', null, array('aria-hidden' => 'true')) ?>
<?= sprintf( <?= sprintf(
$this->translatePlural( $this->translatePlural(
'Acknowledge unhandled host problem', 'Acknowledge unhandled host problem',
@ -133,7 +133,7 @@
), ),
$inDowntimeCount $inDowntimeCount
) ?>"> ) ?>">
<?= $this->icon('plug') ?> <?= $this->icon('plug', null, array('aria-hidden' => 'true')) ?>
<?= sprintf( <?= sprintf(
$this->translatePlural( $this->translatePlural(
'List %u host currently in downtime', 'List %u host currently in downtime',
@ -158,7 +158,7 @@
), ),
$commentCount $commentCount
) ?>"> ) ?>">
<?= $this->icon('comment') ?> <?= $this->icon('comment', null, array('aria-hidden' => 'true')) ?>
<?= sprintf( <?= sprintf(
$this->translatePlural( $this->translatePlural(
'List %u host comment', 'List %u host comment',

View File

@ -59,7 +59,7 @@
<?= $this->link()->host($comment->host, $comment->host_display_name) ?> <?= $this->link()->host($comment->host, $comment->host_display_name) ?>
<?php endif ?> <?php endif ?>
<br> <br>
<?= $this->icon('comment'); ?> <?= isset($comment->author) <?= $this->icon('comment', null, array('aria-hidden' => 'true')); ?> <?= isset($comment->author)
? '[' . $comment->author . '] ' ? '[' . $comment->author . '] '
: ''; : '';
?><?= $this->escape($comment->comment); ?> ?><?= $this->escape($comment->comment); ?>

View File

@ -20,7 +20,7 @@ foreach ($groupData as $groupName => $groupInfo): ?>
<div class="box contents"> <div class="box contents">
<?php foreach ($groupInfo['contacts'] as $c): ?> <?php foreach ($groupInfo['contacts'] as $c): ?>
<div class="box entry"> <div class="box entry">
<img src="<?= $this->href('/static/gravatar', array('email' => $c->contact_email )) ?>" /> <img aria-hidden="true" src="<?= $this->href('/static/gravatar', array('email' => $c->contact_email )) ?>" />
<a href="<?= $this->href( <a href="<?= $this->href(
'monitoring/show/contact', 'monitoring/show/contact',
array('contact' => $c->contact_name) array('contact' => $c->contact_name)

View File

@ -14,7 +14,7 @@
} }
foreach ($contacts as $contact): ?> foreach ($contacts as $contact): ?>
<div class="contact"> <div class="contact">
<img src="<?= $this->href('/static/gravatar', array('email' => $contact->contact_email )) ?>" /> <img aria-hidden="true" src="<?= $this->href('/static/gravatar', array('email' => $contact->contact_email )) ?>" />
<a href="<?= $this->href( <a href="<?= $this->href(
'monitoring/show/contact', 'monitoring/show/contact',
array('contact' => $contact->contact_name) array('contact' => $contact->contact_name)

View File

@ -9,8 +9,8 @@
<table class="objectlist"> <table class="objectlist">
<thead> <thead>
<tr> <tr>
<th><?= $this->icon('host'); ?> <?= $this->translate('Host'); ?></th> <th><?= $this->icon('host', null, array('aria-hidden' => 'true')); ?> <?= $this->translate('Host'); ?></th>
<th><?= $this->icon('conf'); ?> <?= $this->translate('Service'); ?></th> <th><?= $this->icon('conf', null, array('aria-hidden' => 'true')); ?> <?= $this->translate('Service'); ?></th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>

View File

@ -19,21 +19,21 @@
<div> <div>
<a href="<?= $rescheduleAllLink ?>"> <a href="<?= $rescheduleAllLink ?>">
<?= $this->icon('reschedule') ?> <?= $this->icon('reschedule', null, array('aria-hidden' => 'true')) ?>
<?= $this->translate('Reschedule service checks') ?> <?= $this->translate('Reschedule service checks') ?>
</a> </a>
</div> </div>
<div> <div>
<a href="<?= $downtimeAllLink ?>"> <a href="<?= $downtimeAllLink ?>">
<?= $this->icon('plug') ?> <?= $this->icon('plug', null, array('aria-hidden' => 'true')) ?>
<?= $this->translate('Schedule service downtimes') ?> <?= $this->translate('Schedule service downtimes') ?>
</a> </a>
</div> </div>
<div> <div>
<a href="<?= $processCheckResultAllLink; ?>"> <a href="<?= $processCheckResultAllLink; ?>">
<?= $this->icon('reply'); ?> <?= $this->icon('reply', null, array('aria-hidden' => 'true')); ?>
<?= $this->translate('Submit passive check results'); ?> <?= $this->translate('Submit passive check results'); ?>
</a> </a>
</div> </div>
@ -59,7 +59,7 @@
), ),
$unhandledCount $unhandledCount
) ?>"> ) ?>">
<?= $this->icon('plug') ?> <?= $this->icon('plug', null, array('aria-hidden' => 'true')) ?>
<?= sprintf( <?= sprintf(
$this->translatePlural( $this->translatePlural(
'Schedule downtime for unhandled service problem', 'Schedule downtime for unhandled service problem',
@ -79,7 +79,7 @@
), ),
$unhandledCount $unhandledCount
) ?>"> ) ?>">
<?= $this->icon('ok') ?> <?= $this->icon('ok', null, array('aria-hidden' => 'true')) ?>
<?= sprintf( <?= sprintf(
$this->translatePlural( $this->translatePlural(
'Acknowledge unhandled service problem', 'Acknowledge unhandled service problem',
@ -119,7 +119,7 @@
$inDowntimeCount $inDowntimeCount
), ),
$inDowntimeCount) ?>"> $inDowntimeCount) ?>">
<?= $this->icon('plug') ?> <?= $this->icon('plug', null, array('aria-hidden' => 'true')) ?>
<?= sprintf( <?= sprintf(
$this->translatePlural( $this->translatePlural(
'List %u service currently in downtime', 'List %u service currently in downtime',
@ -143,7 +143,7 @@
), ),
$commentCount $commentCount
) ?>"> ) ?>">
<?= $this->icon('comment') ?> <?= $this->icon('comment', null, array('aria-hidden' => 'true')) ?>
<?= sprintf( <?= sprintf(
$this->translatePlural( $this->translatePlural(
'List %u service comment', 'List %u service comment',

View File

@ -36,7 +36,7 @@ if ($object->acknowledged): ?>
} }
?> ?>
<a href="<?= $ackLink ?>" data-base-target="_self"> <a href="<?= $ackLink ?>" data-base-target="_self">
<?= $this->icon('ok') ?> <?= $this->translate('Acknowledge') ?> <?= $this->icon('ok', null, array('aria-hidden' => 'true')) ?> <?= $this->translate('Acknowledge') ?>
</a> </a>
<?php } else { <?php } else {
echo '&#45;'; echo '&#45;';

View File

@ -40,7 +40,7 @@ if ($object->getType() === $object::TYPE_HOST) {
} }
?> ?>
<a href="<?= $reschedule ?>" data-base-target="_self"> <a href="<?= $reschedule ?>" data-base-target="_self">
<?= $this->icon('reschedule') ?> <?= $this->icon('reschedule', null, array('aria-hidden' => 'true')) ?>
<?= $this->translate('Reschedule') ?> <?= $this->translate('Reschedule') ?>
</a> </a>
<?php } // endif ?> <?php } // endif ?>

View File

@ -22,7 +22,7 @@ $command = array_shift($parts);
); );
} ?> } ?>
<a href="<?= $processCheckResult ?>" data-base-target="_self"> <a href="<?= $processCheckResult ?>" data-base-target="_self">
<?= $this->icon('reply') ?> <?= $this->icon('reply', null, array('aria-hidden' => 'true')) ?>
<?= $this->translate('Process check result') ?> <?= $this->translate('Process check result') ?>
</a> </a>
<?php endif ?> <?php endif ?>

View File

@ -16,7 +16,7 @@
} }
?> ?>
<a href="<?= $addCommentLink ?>" data-base-target="_self"> <a href="<?= $addCommentLink ?>" data-base-target="_self">
<?= $this->icon('comment') ?> <?= $this->icon('comment', null, array('aria-hidden' => 'true')) ?>
<?= $this->translate('Add comment') ?> <?= $this->translate('Add comment') ?>
</a> </a>
<?php } else { <?php } else {

View File

@ -12,7 +12,7 @@ if (! empty($object->contacts)) {
printf( printf(
"<tr><th>%s</th><td>%s %s</td></tr>\n", "<tr><th>%s</th><td>%s %s</td></tr>\n",
$this->translate('Contacts'), $this->translate('Contacts'),
$this->icon('user'), $this->icon('user', null, array('aria-hidden' => 'true')),
implode(', ', $list) implode(', ', $list)
); );
@ -31,7 +31,7 @@ if (! empty($object->contactgroups)) {
printf( printf(
"<tr><th>%s</th><td>%s %s</td></tr>\n", "<tr><th>%s</th><td>%s %s</td></tr>\n",
$this->translate('Contactgroups'), $this->translate('Contactgroups'),
$this->icon('users'), $this->icon('users', null, array('aria-hidden' => 'true')),
implode(', ', $list) implode(', ', $list)
); );

View File

@ -16,7 +16,7 @@
} }
?> ?>
<a href="<?= $scheduleDowntimeLink ?>" data-base-target="_self"> <a href="<?= $scheduleDowntimeLink ?>" data-base-target="_self">
<?= $this->icon('plug') ?> <?= $this->icon('plug', null, array('aria-hidden' => 'true')) ?>
<?= $this->translate('Schedule downtime') ?> <?= $this->translate('Schedule downtime') ?>
</a> </a>
<?php } else { <?php } else {

View File

@ -11,7 +11,7 @@ foreach ($object->hostgroups as $name => $alias) {
printf( printf(
"<tr><th>%s</th><td>%s %s</td></tr>\n", "<tr><th>%s</th><td>%s %s</td></tr>\n",
$this->translate('Hostgroups'), $this->translate('Hostgroups'),
$this->icon('host'), $this->icon('host', null, array('aria-hidden' => 'true')),
implode(', ', $list) implode(', ', $list)
); );

View File

@ -12,7 +12,7 @@ foreach ($object->servicegroups as $name => $alias) {
printf( printf(
"<tr><th>%s</th><td>%s %s</td></tr>\n", "<tr><th>%s</th><td>%s %s</td></tr>\n",
$this->translate('Servicegroups'), $this->translate('Servicegroups'),
$this->icon('services'), $this->icon('services', null, array('aria-hidden' => 'true')),
implode(', ', $list) implode(', ', $list)
); );

View File

@ -131,7 +131,7 @@
height: 2.2em; height: 2.2em;
margin: 0 auto 2.5em; margin: 0 auto 2.5em;
span.icon-info { i.icon-info {
float: left; float: left;
height: 100%; height: 100%;
} }