calendar: Allow keynav to day headers and week numbers

While those elements cannot be activated, they still provide useful
information to screen readers, so include them in the focus chain.
For the same purpose, set a more verbose accessible name, given that
it is not bound by the same space constraints as the visible label.

https://bugzilla.gnome.org/show_bug.cgi?id=706903
This commit is contained in:
Florian Müllner 2015-03-03 04:37:49 +01:00
parent db4076b697
commit afc2253e5d

View File

@ -615,7 +615,9 @@ const Calendar = new Lang.Class({
// and we want, ideally, a single character for e.g. S M T W T F S // and we want, ideally, a single character for e.g. S M T W T F S
let customDayAbbrev = _getCalendarDayAbbreviation(iter.getDay()); let customDayAbbrev = _getCalendarDayAbbreviation(iter.getDay());
let label = new St.Label({ style_class: 'calendar-day-base calendar-day-heading', let label = new St.Label({ style_class: 'calendar-day-base calendar-day-heading',
text: customDayAbbrev }); text: customDayAbbrev,
can_focus: true });
label.accessible_name = iter.toLocaleFormat('%A');
let col; let col;
if (this.actor.get_text_direction() == Clutter.TextDirection.RTL) if (this.actor.get_text_direction() == Clutter.TextDirection.RTL)
col = 6 - (7 + iter.getDay() - this._weekStart) % 7; col = 6 - (7 + iter.getDay() - this._weekStart) % 7;
@ -800,7 +802,10 @@ const Calendar = new Lang.Class({
if (this._useWeekdate && iter.getDay() == 4) { if (this._useWeekdate && iter.getDay() == 4) {
let label = new St.Label({ text: iter.toLocaleFormat('%V'), let label = new St.Label({ text: iter.toLocaleFormat('%V'),
style_class: 'calendar-day-base calendar-week-number'}); style_class: 'calendar-day-base calendar-week-number',
can_focus: true });
let weekFormat = Shell.util_translate_time_string(N_("Week %V"));
label.accessible_name = iter.toLocaleFormat(weekFormat);
layout.pack(label, rtl ? 7 : 0, row); layout.pack(label, rtl ? 7 : 0, row);
} }