Skip to content

Commit

Permalink
MDL-68444 calendar: Improve how screenreaders read day titles
Browse files Browse the repository at this point in the history
Screenreaders now know if each day has any event or not
  • Loading branch information
rezaies committed Jul 14, 2020
1 parent 035f5d9 commit 0368c8e
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 4 deletions.
25 changes: 25 additions & 0 deletions calendar/classes/external/week_day_exporter.php
Expand Up @@ -86,6 +86,9 @@ protected static function define_other_properties() {
'type' => PARAM_RAW,
'default' => '',
],
'daytitle' => [
'type' => PARAM_RAW,
]
]);

return $return;
Expand All @@ -104,6 +107,8 @@ protected function get_other_values(renderer_base $output) {
$return['popovertitle'] = $popovertitle;
}

$return['daytitle'] = $this->get_day_title();

return $return;
}

Expand Down Expand Up @@ -141,4 +146,24 @@ protected function get_popover_title() {

return $title;
}

/**
* Get the title for this day.
*
* @return string
*/
protected function get_day_title(): string {
$userdate = userdate($this->data[0], get_string('strftimedayshort'));

$numevents = count($this->related['events']);
if ($numevents == 1) {
$title = get_string('dayeventsone', 'calendar', $userdate);
} else if ($numevents) {
$title = get_string('dayeventsmany', 'calendar', ['num' => $numevents, 'day' => $userdate]);
} else {
$title = get_string('dayeventsnone', 'calendar', $userdate);
}

return $title;
}
}
6 changes: 4 additions & 2 deletions calendar/templates/month_detailed.mustache
Expand Up @@ -71,14 +71,15 @@
data-region="day"
data-new-event-timestamp="{{neweventtimestamp}}">
<div class="d-none d-md-block hidden-phone text-xs-center">
<span class="sr-only">{{daytitle}}</span>
{{#hasevents}}
<a data-action="view-day-link" href="#" class="day" aria-label="{{viewdaylinktitle}}"
data-year="{{date.year}}" data-month="{{date.mon}}" data-day="{{mday}}"
data-courseid="{{courseid}}" data-categoryid="{{categoryid}}"
data-timestamp="{{timestamp}}">{{mday}}</a>
{{/hasevents}}
{{^hasevents}}
{{mday}}
<span aria-hidden="true">{{mday}}</span>
{{/hasevents}}
{{#hasevents}}
<div data-region="day-content">
Expand Down Expand Up @@ -122,14 +123,15 @@
{{/hasevents}}
</div>
<div class="d-md-none hidden-desktop hidden-tablet">
<span class="sr-only">{{daytitle}}</span>
{{#hasevents}}
<a data-action="view-day-link" href="#" class="day" aria-label="{{viewdaylinktitle}}"
data-year="{{date.year}}" data-month="{{date.mon}}" data-day="{{mday}}"
data-courseid="{{courseid}}" data-categoryid="{{categoryid}}"
data-timestamp="{{timestamp}}">{{mday}}</a>
{{/hasevents}}
{{^hasevents}}
{{mday}}
<span aria-hidden="true">{{mday}}</span>
{{/hasevents}}
</div>
</td>
Expand Down
5 changes: 3 additions & 2 deletions calendar/templates/month_mini.mustache
Expand Up @@ -128,7 +128,8 @@
This is the timestamp for this month.
}} data-day-timestamp="{{timestamp}}"{{!
}}>{{!
}}{{#popovertitle}}
}}<span class="sr-only">{{daytitle}}</span>
{{#popovertitle}}
{{< core_calendar/minicalendar_day_link }}
{{$day}}{{mday}}{{/day}}
{{$url}}{{viewdaylink}}{{/url}}
Expand All @@ -145,7 +146,7 @@
{{/ core_calendar/minicalendar_day_link }}
{{/popovertitle}}{{!
}}{{^popovertitle}}
{{mday}}
<span aria-hidden="true">{{mday}}</span>
{{/popovertitle}}{{!
}}</td>
{{/days}}
Expand Down
3 changes: 3 additions & 0 deletions lang/en/calendar.php
Expand Up @@ -52,6 +52,9 @@
$string['customexport'] = 'Custom range ({$a->timestart} - {$a->timeend})';
$string['daily'] = 'Daily';
$string['day'] = 'Day';
$string['dayeventsmany'] = '{$a->num} events, {$a->day}';
$string['dayeventsnone'] = 'No events, {$a}';
$string['dayeventsone'] = '1 event, {$a}';
$string['daynext'] = 'Next day';
$string['dayprev'] = 'Previous day';
$string['dayviewfor'] = 'Day view for:';
Expand Down

0 comments on commit 0368c8e

Please sign in to comment.