From 1ec99f657737acf7fb0f2c3e8dc434cb77bf75c5 Mon Sep 17 00:00:00 2001 From: Will Fyson Date: Wed, 12 Feb 2020 11:39:51 +0000 Subject: [PATCH 1/9] Basic accessibility statement, phrases and a configuration file. --- lib/defaultcfg/cfg.d/z_accessibility.pl | 8 ++ .../lang/en/static/accessibility.xpage | 99 +++++++++++++++++++ lib/lang/en/phrases/accessibility.xml | 22 +++++ 3 files changed, 129 insertions(+) create mode 100755 lib/defaultcfg/cfg.d/z_accessibility.pl create mode 100755 lib/defaultcfg/lang/en/static/accessibility.xpage create mode 100755 lib/lang/en/phrases/accessibility.xml diff --git a/lib/defaultcfg/cfg.d/z_accessibility.pl b/lib/defaultcfg/cfg.d/z_accessibility.pl new file mode 100755 index 00000000..867f7e76 --- /dev/null +++ b/lib/defaultcfg/cfg.d/z_accessibility.pl @@ -0,0 +1,8 @@ +$c->{accessibilityemail} = undef; + +# set default accessibility email if no email specified +if( !defined $c->{accessibilityemail} ) +{ + $c->{accessibilityemail} = $c->{adminemail}; +} + diff --git a/lib/defaultcfg/lang/en/static/accessibility.xpage b/lib/defaultcfg/lang/en/static/accessibility.xpage new file mode 100755 index 00000000..137e9d86 --- /dev/null +++ b/lib/defaultcfg/lang/en/static/accessibility.xpage @@ -0,0 +1,99 @@ + + + + Accessibility statement for + + +

This website is run by . We want as many people as possible to be able to use this website. For example, that means you should be able to:

+ +
    +
  • change colours, contrast levels and fonts
  • +
  • zoom in up to 300% without the text spilling off the screen
  • +
  • navigate most of the website using just a keyboard
  • +
  • navigate most of the website using speech recognition software
  • +
  • listen to most of the website using a screen reader (including the most recent versions of JAWS, NVDA and VoiceOver)
  • +
+ +

We’ve also made the website text as simple as possible to understand.

+ +

AbilityNet has advice on making your device easier to use if you have a disability.

+ +

Haow accessible this website is

+ +

We know some parts of are not fully accessible:

+ +
    +
  • most older PDF documents are not fully accessible to screen reader software
  • + +
+ +

What to do if you cannot access parts of this website

+ +

If you need information on this website in a different format like accessible PDF, large print, easy read, audio recording or braille:

+ +
    +
  • email
  • +
+ +

We’ll consider your request and get back to you in days.

+ +

Reporting accessibility problems with this website

+ +

We’re always looking to improve the accessibility of this website. If you find any problems not listed on this page or think we’re not meeting accessibility requirements, contact:

+ +

Enforcement procedure

+ +

The Equality and Human Rights Commission (EHRC) is responsible for enforcing the Public Sector Bodies (Websites and Mobile Applications) (No. 2) Accessibility Regulations 2018 (the ‘accessibility regulations’). If you’re not happy with how we respond to your complaint, contact the Equality Advisory and Support Service (EASS)

+ +

Technical information about this website’s accessibility

+ +

is committed to making its website accessible, in accordance with the Public Sector Bodies (Websites and Mobile Applications) (No. 2) Accessibility Regulations 2018.

+ +

This website is not compliant with the Web Content Accessibility Guidelines version 2.1 AA standard. The non-accessible sections are listed below.

+ +

Non accessible content

+ +

The content listed below is non-accessible for the following reasons.

+ +

Non compliance with the accessibility regulations

+ +

[List accessibilty problems below]

+ +

Disproportionate burden

+ +

[List accessibility problems whcih would be a disproportionate burden to fix below]

+ +

Content that’s not within the scope of the accessibility regulations

+ +

PDFs and other documents

+ +

As is an open access research repository, the principal content made available to users are research outputs such as articles, papers, posters and reports, many of which are PDF documents. Many PDF documents, especially older ones, are not fully accessible to screen reader software and do not contain other common accessibility features. In particular:

+ +
    +
  • many documents, especially older ones, do not conform to the PDF/A archiving format.
  • +
  • many lack bookmarks or document titles, therefore failing to meet WCAG 2.1 success criteria 2.4.5 and 2.4.2.
  • +
  • many discuss scientific or scholarly concepts which may be abbreviated with no mechanism for discovering the meaning of the abbreviations, or unusual words arising from scholarly discourse without definitions. These issues each fail WCAG 2.1 criteria 3.1.4 and 3.1.1 respectively.
  • +
  • there may be some documents that fail to specify their human language, thereby failing WCAG 2.1 success criterion 3.1.1.
  • +
  • many documents may not reflow satisfactorily. This fails WCAG 2.1 success criterion 1.4.10.
  • +
+ +

How we tested this website

+ +

This website was last tested on The test was carried out by .

+ +

We used this approach to deciding on a sample of pages to test .

+ +

What we’re doing to improve accessibility

+ +

Our accessibility roadmap shows how and when we plan to improve accessibility on this website.

+ +

This statement was prepared on . It was last updated on .

+ +
+
diff --git a/lib/lang/en/phrases/accessibility.xml b/lib/lang/en/phrases/accessibility.xml new file mode 100755 index 00000000..88317eab --- /dev/null +++ b/lib/lang/en/phrases/accessibility.xml @@ -0,0 +1,22 @@ + + + + + + [name of organisation] + + [number] + + [date] + + [add name of organisation that carried out test, or indicate that you did your own testing] + + [add link to explanation of how you decided which pages to test] + + [add link to roadmap] + + [date when it was first published] + + [date when it was first published] + + From 957999804b2b9034d3035b8f164b03577e012bb9 Mon Sep 17 00:00:00 2001 From: Will Fyson Date: Mon, 17 Feb 2020 16:12:56 +0000 Subject: [PATCH 2/9] Accessibility fixes for the homepage. --- lib/lang/en/phrases/system.xml | 2 +- lib/static/style/auto/colors.css | 2 +- lib/static/style/auto/search.css | 2 +- lib/static/style/auto/template.css | 7 ++-- lib/templates/default.xml | 55 +++++++++++++++--------------- 5 files changed, 35 insertions(+), 33 deletions(-) diff --git a/lib/lang/en/phrases/system.xml b/lib/lang/en/phrases/system.xml index 3342d5ff..e7a64b27 100644 --- a/lib/lang/en/phrases/system.xml +++ b/lib/lang/en/phrases/system.xml @@ -3772,7 +3772,7 @@ PY = 2006 and OG = (Cambridge)
Home About Browse -
is powered by EPrints 3 which is developed by the School of Electronics and Computer Science at the University of Southampton. More information and software credits.
+
is powered by EPrints 3 which is developed by the School of Electronics and Computer Science at the University of Southampton. More information and software credits.
diff --git a/lib/static/style/auto/colors.css b/lib/static/style/auto/colors.css index 30a4af05..d4aa08e6 100644 --- a/lib/static/style/auto/colors.css +++ b/lib/static/style/auto/colors.css @@ -55,7 +55,7 @@ h1, h2, h3, h4 { color: white; } .ep_tm_searchbar, .ep_columns_title, td.ep_columns_alter, .ep_toolbox_title { - color: #606060; + color: #555; } .ep_tm_searchbar, .ep_columns_title, td.ep_columns_alter { background-color: #ccc; diff --git a/lib/static/style/auto/search.css b/lib/static/style/auto/search.css index 5897ec6c..09f2016e 100644 --- a/lib/static/style/auto/search.css +++ b/lib/static/style/auto/search.css @@ -62,7 +62,7 @@ } .ep_search_feed a { text-decoration: none; - color: #888; + color: #666; } .ep_search_results diff --git a/lib/static/style/auto/template.css b/lib/static/style/auto/template.css index f9b6e7bf..1b6dde95 100644 --- a/lib/static/style/auto/template.css +++ b/lib/static/style/auto/template.css @@ -144,8 +144,9 @@ hr.ep_tm_last { } .ep_tm_searchbar { - border-width:0; - width:100%; + border-width:0; + display: flex; + justify-content: space-between; } .ep_tm_searchbar td { @@ -168,7 +169,7 @@ hr.ep_tm_last { .ep_tm_footer { clear: both; margin-top: 20px; - font-size: 80%; + font-size: 86%; border-top-width: 2px; border-top-style: solid; padding: 10px 10px 0px 10px; diff --git a/lib/templates/default.xml b/lib/templates/default.xml index 5f744249..14119c92 100644 --- a/lib/templates/default.xml +++ b/lib/templates/default.xml @@ -1,6 +1,6 @@ - + <epc:pin ref="title" textonly="yes"/> - <epc:phrase ref="archive_name"/> @@ -10,12 +10,13 @@ -
+
+
+ + + +

- -
+
From fa77f78e14e5e5decc6a9d984550bb9c997e8cd3 Mon Sep 17 00:00:00 2001 From: Will Fyson Date: Mon, 17 Feb 2020 16:21:18 +0000 Subject: [PATCH 3/9] Update site_lib submodule to use new accessibility branch --- site_lib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site_lib b/site_lib index f1885ce0..c4e872e7 160000 --- a/site_lib +++ b/site_lib @@ -1 +1 @@ -Subproject commit f1885ce00a6053eaa69de6c45b4d9334b919587c +Subproject commit c4e872e7c05476155ecd12c74e88dc842ed81bf9 From 8cc01afce583cc182eece8dd4748722b56f00a2c Mon Sep 17 00:00:00 2001 From: Will Fyson Date: Mon, 17 Feb 2020 16:55:41 +0000 Subject: [PATCH 4/9] Accessibility fixes for user login screen --- lib/lang/en/phrases/system.xml | 14 ++++++++++---- perl_lib/EPrints/Plugin/Screen/Login/Internal.pm | 1 + 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/lib/lang/en/phrases/system.xml b/lib/lang/en/phrases/system.xml index e7a64b27..a6bc3379 100644 --- a/lib/lang/en/phrases/system.xml +++ b/lib/lang/en/phrases/system.xml @@ -2032,10 +2032,16 @@ User Area CGI Scripts

Please enter your username and password.

- - - -
Username:
Password:
+
+
+
+
+
+
+
+
+
+

Note: you must have cookies enabled.

diff --git a/perl_lib/EPrints/Plugin/Screen/Login/Internal.pm b/perl_lib/EPrints/Plugin/Screen/Login/Internal.pm index 3e9f32ca..dd79287e 100644 --- a/perl_lib/EPrints/Plugin/Screen/Login/Internal.pm +++ b/perl_lib/EPrints/Plugin/Screen/Login/Internal.pm @@ -71,6 +71,7 @@ sub render $bits{input_password} = $repo->render_input_field( class => "ep_form_text", + id => "login_password", name => 'login_password', type => "password" ); From 10802163fd5007e674233272314a84e19b000272 Mon Sep 17 00:00:00 2001 From: Will Fyson Date: Tue, 18 Feb 2020 16:02:08 +0000 Subject: [PATCH 5/9] Fix lightbox accessibility issues --- lib/static/javascript/auto/40_lightbox.js | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/lib/static/javascript/auto/40_lightbox.js b/lib/static/javascript/auto/40_lightbox.js index df9564cd..200738c4 100644 --- a/lib/static/javascript/auto/40_lightbox.js +++ b/lib/static/javascript/auto/40_lightbox.js @@ -134,15 +134,15 @@ Lightbox.prototype = { var objBody = $$('body')[0]; objBody.appendChild(Builder.node('div',{id:'overlay'})); - + console.log(Builder); objBody.appendChild(Builder.node('div',{id:'lightbox'}, [ Builder.node('div',{id:'outerImageContainer'}, Builder.node('div',{id:'imageContainer'}, [ - Builder.node('img',{id:'lightboxImage'}), + Builder.node('img',{id:'lightboxImage', alt:'Lightbox'}), Builder.node('div',{id:'lightboxMovie'}), Builder.node('div',{id:'loading'}, Builder.node('a',{id:'loadingLink', href: '#' }, - Builder.node('img', {src: LightboxOptions.fileLoadingImage}) + Builder.node('img', {src: LightboxOptions.fileLoadingImage, alt:'Loading'}) ) ) ]) @@ -150,8 +150,12 @@ Lightbox.prototype = { Builder.node('div', {id:'imageDataContainer'}, Builder.node('div',{id:'imageData'}, [ Builder.node('div',{id:'hoverNav'}, [ - Builder.node('a',{id:'prevLink', href: '#' }), - Builder.node('a',{id:'nextLink', href: '#' }) + Builder.node('a',{id:'prevLink', href: '#' }, [ + Builder.node('span',{style:'display:none; font-size:11px;'},['Previous']) + ]), + Builder.node('a',{id:'nextLink', href: '#' }, [ + Builder.node('span',{style:'display:none; font-size:11px;'},['Next']) + ]) ]), Builder.node('div',{id:'imageDetails'}, [ Builder.node('span',{id:'caption'}), @@ -159,7 +163,7 @@ Lightbox.prototype = { ]), Builder.node('div',{id:'bottomNav'}, Builder.node('a',{id:'bottomNavClose', href: '#' }, - Builder.node('img', { src: LightboxOptions.fileBottomNavCloseImage }) + Builder.node('img', { src: LightboxOptions.fileBottomNavCloseImage, alt:'Close' }) ) ) ]) From 1afd10fa45aedb84ff719bf25a6d805317f43723 Mon Sep 17 00:00:00 2001 From: Will Fyson Date: Mon, 30 Mar 2020 09:31:20 +0000 Subject: [PATCH 6/9] Fix table layout for messages to use CSS rather than than table elements, and minor fixes to policies pages --- lib/defaultcfg/lang/en/static/policies.xpage | 12 ++++-------- lib/lang/en/phrases/xapian_warning.xml | 6 +++--- lib/static/style/auto/messages.css | 16 ++++++++++++++++ perl_lib/EPrints/Repository.pm | 10 +++++----- 4 files changed, 28 insertions(+), 16 deletions(-) diff --git a/lib/defaultcfg/lang/en/static/policies.xpage b/lib/defaultcfg/lang/en/static/policies.xpage index 80f9f5c4..9564a756 100644 --- a/lib/defaultcfg/lang/en/static/policies.xpage +++ b/lib/defaultcfg/lang/en/static/policies.xpage @@ -4,17 +4,13 @@ Repository Policies - - - -
-Warning +
+Warning

No policies have been defined for this repository.

You can use the OpenDOAR Policies Tool to produce a standard policy page. Use the button below to define your policies.

-
+ -
- + diff --git a/lib/lang/en/phrases/xapian_warning.xml b/lib/lang/en/phrases/xapian_warning.xml index 3ce53501..f301fb43 100644 --- a/lib/lang/en/phrases/xapian_warning.xml +++ b/lib/lang/en/phrases/xapian_warning.xml @@ -5,10 +5,10 @@ -
-Message +
+Message
Please note: Email alerts for saved simple searches are not supported in this version. -
+
diff --git a/lib/static/style/auto/messages.css b/lib/static/style/auto/messages.css index d3ad9e3d..5e55e479 100644 --- a/lib/static/style/auto/messages.css +++ b/lib/static/style/auto/messages.css @@ -15,3 +15,19 @@ border-width: 1px; } +.ep_msg .table{ + display: table; +} + +.ep_msg .table-row{ + display: table-row +} + +.ep_msg .table-cell{ + display: table-cell; + vertical-align: middle; +} + +.ep_msg .table-cell.msg-icon{ + padding-right: 5px; +} diff --git a/perl_lib/EPrints/Repository.pm b/perl_lib/EPrints/Repository.pm index 905e1abd..8849c31e 100644 --- a/perl_lib/EPrints/Repository.pm +++ b/perl_lib/EPrints/Repository.pm @@ -4297,18 +4297,18 @@ sub render_message my $id = "m".$self->get_next_id; my $div = $self->make_element( "div", class=>"ep_msg_".$type, id=>$id ); - my $content_div = $self->make_element( "div", class=>"ep_msg_".$type."_content" ); - my $table = $self->make_element( "table" ); - my $tr = $self->make_element( "tr" ); + my $content_div = $self->make_element( "div", class=>"ep_msg ep_msg_".$type."_content" ); + my $table = $self->make_element( "div", class=>"table"); + my $tr = $self->make_element( "div", class=>"table-row" ); $table->appendChild( $tr ); if( $show_icon ) { - my $td1 = $self->make_element( "td" ); + my $td1 = $self->make_element( "div", class=>"table-cell msg-icon" ); my $imagesurl = $self->get_repository->get_conf( "rel_path" ); $td1->appendChild( $self->make_element( "img", class=>"ep_msg_".$type."_icon", src=>"$imagesurl/style/images/".$type.".png", alt=>$self->phrase( "Plugin/Screen:message_".$type ) ) ); $tr->appendChild( $td1 ); } - my $td2 = $self->make_element( "td" ); + my $td2 = $self->make_element( "div", class=>"table-cell msg-content" ); $tr->appendChild( $td2 ); $td2->appendChild( $content ); $content_div->appendChild( $table ); From 938730d84caec952b46db3aeb5713c4f544fdb4c Mon Sep 17 00:00:00 2001 From: Will Fyson Date: Tue, 31 Mar 2020 09:47:39 +0000 Subject: [PATCH 7/9] Add labels and legends for the advanced search form. --- lib/lang/en/phrases/system.xml | 1 + lib/static/style/auto/accessibility.css | 11 +++++ lib/static/style/auto/form.css | 29 ++++++++++++ lib/static/style/auto/general.css | 8 ++++ lib/static/style/auto/search.css | 4 ++ perl_lib/EPrints/MetaField.pm | 4 +- perl_lib/EPrints/MetaField/Boolean.pm | 3 +- perl_lib/EPrints/MetaField/Date.pm | 3 +- perl_lib/EPrints/MetaField/Decimal.pm | 3 +- perl_lib/EPrints/MetaField/Int.pm | 3 +- perl_lib/EPrints/MetaField/Pagerange.pm | 3 +- perl_lib/EPrints/MetaField/Set.pm | 14 ++++-- perl_lib/EPrints/MetaField/Subject.pm | 6 ++- perl_lib/EPrints/MetaField/Year.pm | 3 +- .../EPrints/Plugin/Screen/AbstractSearch.pm | 31 ++++++++++--- perl_lib/EPrints/Plugin/Screen/Search.pm | 11 +++-- perl_lib/EPrints/Repository.pm | 46 ++++++++++++------- perl_lib/EPrints/XHTML.pm | 11 ++++- 18 files changed, 152 insertions(+), 42 deletions(-) create mode 100644 lib/static/style/auto/accessibility.css diff --git a/lib/lang/en/phrases/system.xml b/lib/lang/en/phrases/system.xml index a6bc3379..c9ca3330 100644 --- a/lib/lang/en/phrases/system.xml +++ b/lib/lang/en/phrases/system.xml @@ -1536,6 +1536,7 @@ For more information see Meta

The search failed to execute correctly.

The requested output format is not available.

Save search + Merge diff --git a/lib/static/style/auto/accessibility.css b/lib/static/style/auto/accessibility.css new file mode 100644 index 00000000..71266170 --- /dev/null +++ b/lib/static/style/auto/accessibility.css @@ -0,0 +1,11 @@ +/* Hide content visually, but not to a screen reader */ +.sr-only:not(:focus):not(:active) +{ + clip: rect(0 0 0 0); + clip-path: inset(50%); + height: 1px; + overflow: hidden; + position: absolute; + white-space: nowrap; + width: 1px; +} diff --git a/lib/static/style/auto/form.css b/lib/static/style/auto/form.css index 630e657c..8449b02b 100644 --- a/lib/static/style/auto/form.css +++ b/lib/static/style/auto/form.css @@ -79,3 +79,32 @@ td.ep_form_input_grid_arrows { td.ep_form_input_grid_wide { text-align: left; } + +.ep_multi_heading::after { + content: ":"; +} + +.ep_search_fields > div > div { + border-top: dashed #bbf 1px; + vertical-align: top; + padding: 0.5em; +} + +.ep_multi_heading { + border-right: dashed #bbf 1px; + font-weight: bold; + text-align: right; +} + +.ep_login_form_table { + margin:auto; + display: table; +} + +.ep_login_form_table > div { + display: table-row; +} + +.ep_login_form_table > div > div, .ep_login_form_table > div > label { + display: table-cell; +} diff --git a/lib/static/style/auto/general.css b/lib/static/style/auto/general.css index 7d649672..7e76444f 100644 --- a/lib/static/style/auto/general.css +++ b/lib/static/style/auto/general.css @@ -103,3 +103,11 @@ th.ep_title_row { { padding: 2px; } + +.ep_table_row { + display: table-row; +} + +.ep_table_cell { + display: table-cell; +} diff --git a/lib/static/style/auto/search.css b/lib/static/style/auto/search.css index 09f2016e..43917eb9 100644 --- a/lib/static/style/auto/search.css +++ b/lib/static/style/auto/search.css @@ -105,3 +105,7 @@ input.ep_form_search_advanced_link, input.ep_form_search_advanced_link:hover { span.search_desc { font-style: italic; } + +.ep_lbl_merge{ + display: none; +} diff --git a/perl_lib/EPrints/MetaField.pm b/perl_lib/EPrints/MetaField.pm index 8ab40849..fdf9c73d 100644 --- a/perl_lib/EPrints/MetaField.pm +++ b/perl_lib/EPrints/MetaField.pm @@ -2153,7 +2153,8 @@ sub render_search_input name=>$searchfield->get_form_prefix."_merge", values=>\@text_tags, default=>$searchfield->get_merge, - labels=>\%text_labels ) ); + labels=>\%text_labels, + 'aria-labelledby' => $searchfield->get_form_prefix . "_label" ) ); $frag->appendChild( $session->make_text(" ") ); } $frag->appendChild( @@ -2164,6 +2165,7 @@ sub render_search_input value => $searchfield->get_value, size => $self->get_property( "search_cols" ), maxlength => 256, + 'aria-labelledby' => $searchfield->get_form_prefix . "_label", %opts, ) ); if( $searchfield->get_match ne $self->property( "match" ) ) diff --git a/perl_lib/EPrints/MetaField/Boolean.pm b/perl_lib/EPrints/MetaField/Boolean.pm index abdc6c60..10910cda 100644 --- a/perl_lib/EPrints/MetaField/Boolean.pm +++ b/perl_lib/EPrints/MetaField/Boolean.pm @@ -200,7 +200,8 @@ sub render_search_input name => $searchfield->get_form_prefix, values => \@bool_tags, default => ( defined $value ? $value : $bool_tags[0] ), - labels => \%bool_labels ); + labels => \%bool_labels, + 'aria-labelledby' => $searchfield->get_form_prefix . "_label" ); } sub from_search_form diff --git a/perl_lib/EPrints/MetaField/Date.pm b/perl_lib/EPrints/MetaField/Date.pm index a1cd4f09..b9d8f835 100644 --- a/perl_lib/EPrints/MetaField/Date.pm +++ b/perl_lib/EPrints/MetaField/Date.pm @@ -315,7 +315,8 @@ sub render_search_input name => $searchfield->get_form_prefix, value => $searchfield->get_value, size => 21, - maxlength => 21 ); + maxlength => 21, + 'aria-labelledby' => $searchfield->get_form_prefix . "_label" ); } diff --git a/perl_lib/EPrints/MetaField/Decimal.pm b/perl_lib/EPrints/MetaField/Decimal.pm index 4d1f110a..740971eb 100644 --- a/perl_lib/EPrints/MetaField/Decimal.pm +++ b/perl_lib/EPrints/MetaField/Decimal.pm @@ -76,7 +76,8 @@ sub render_search_input name=>$searchfield->get_form_prefix, value=>$searchfield->get_value, size=>9, - maxlength=>$self->get_max_input_size ); + maxlength=>$self->get_max_input_size, + 'aria-labelledby' => $searchfield->get_form_prefix . "_label" ); } sub get_property_defaults diff --git a/perl_lib/EPrints/MetaField/Int.pm b/perl_lib/EPrints/MetaField/Int.pm index c8e8d139..2880bcfd 100644 --- a/perl_lib/EPrints/MetaField/Int.pm +++ b/perl_lib/EPrints/MetaField/Int.pm @@ -79,7 +79,8 @@ sub render_search_input name=>$searchfield->get_form_prefix, value=>$searchfield->get_value, size=>9, - maxlength=>100 ); + maxlength=>100, + 'aria-labelledby' => $searchfield->get_form_prefix . "_label" ); } sub from_search_form diff --git a/perl_lib/EPrints/MetaField/Pagerange.pm b/perl_lib/EPrints/MetaField/Pagerange.pm index f46e840a..45c7f44e 100644 --- a/perl_lib/EPrints/MetaField/Pagerange.pm +++ b/perl_lib/EPrints/MetaField/Pagerange.pm @@ -167,7 +167,8 @@ sub render_search_input name=>$searchfield->get_form_prefix, value=>$searchfield->get_value, size=>9, - maxlength=>100 ); + maxlength=>100, + 'aria-labelledby' => $searchfield->get_form_prefix . "_label" ); } ###################################################################### diff --git a/perl_lib/EPrints/MetaField/Set.pm b/perl_lib/EPrints/MetaField/Set.pm index 594f33b6..cb7019da 100644 --- a/perl_lib/EPrints/MetaField/Set.pm +++ b/perl_lib/EPrints/MetaField/Set.pm @@ -333,13 +333,14 @@ sub split_search_value sub render_search_input { - my( $self, $session, $searchfield ) = @_; + my( $self, $session, $searchfield, %opts ) = @_; my $frag = $session->make_doc_fragment; $frag->appendChild( $self->render_search_set_input( $session, - $searchfield ) ); + $searchfield, + %opts ) ); if( $self->get_property( "multiple" ) ) { @@ -355,7 +356,8 @@ sub render_search_input name=>$searchfield->get_form_prefix."_merge", values=>\@set_tags, default=>$searchfield->get_merge, - labels=>\%set_labels ) ); + labels=>\%set_labels, + 'aria-labelledby'=>$searchfield->get_form_prefix."_label" ) ); } if( $searchfield->get_match ne $self->property( "match" ) ) { @@ -371,7 +373,7 @@ sub render_search_input sub render_search_set_input { - my( $self, $session, $searchfield ) = @_; + my( $self, $session, $searchfield, %opts ) = @_; my $prefix = $searchfield->get_form_prefix; my $value = $searchfield->get_value; @@ -412,11 +414,13 @@ sub render_search_set_input return $session->render_option_list( checkbox => ($self->{search_input_style} eq "checkbox"?1:0), name => $prefix, + legend => $opts{legend}, default => \@defaults, multiple => 1, labels => $labels, values => $tags, - height => $height ); + height => $height, + 'aria-labelledby' => $prefix . "_label" ); } sub from_search_form diff --git a/perl_lib/EPrints/MetaField/Subject.pm b/perl_lib/EPrints/MetaField/Subject.pm index e30b0565..45fac4fa 100644 --- a/perl_lib/EPrints/MetaField/Subject.pm +++ b/perl_lib/EPrints/MetaField/Subject.pm @@ -140,7 +140,8 @@ sub render_set_input id => $basename, default => $default, multiple => $self->{multiple}, - height => $self->{input_rows} ); + height => $self->{input_rows}, + 'aria-labelledby' => $basename . "_label" ); } @@ -209,7 +210,8 @@ sub render_search_set_input default => \@defaults, multiple => 1, pairs => $pairs, - height => $height ); + height => $height, + 'aria-labelledby' => $prefix . "_label" ); } sub traverse_subjects diff --git a/perl_lib/EPrints/MetaField/Year.pm b/perl_lib/EPrints/MetaField/Year.pm index 3d5aec41..0ce1694f 100644 --- a/perl_lib/EPrints/MetaField/Year.pm +++ b/perl_lib/EPrints/MetaField/Year.pm @@ -44,7 +44,8 @@ sub render_search_input name=>$searchfield->get_form_prefix, value=>$searchfield->get_value, size=>9, - maxlength=>9 ); + maxlength=>9, + 'aria-labelledby'=>$searchfield->get_form_prefix . "_label" ); } sub from_search_form diff --git a/perl_lib/EPrints/Plugin/Screen/AbstractSearch.pm b/perl_lib/EPrints/Plugin/Screen/AbstractSearch.pm index 06b004a6..7b88d17d 100644 --- a/perl_lib/EPrints/Plugin/Screen/AbstractSearch.pm +++ b/perl_lib/EPrints/Plugin/Screen/AbstractSearch.pm @@ -510,7 +510,7 @@ sub render_export_bar } } - my $select = $session->make_element( "select", name=>"output" ); + my $select = $session->make_element( "select", name=>"output", id=>"search-export-output" ); foreach my $optname ( sort keys %{$options} ) { $select->appendChild( $options->{$optname} ); @@ -707,7 +707,7 @@ sub render_search_form $form->appendChild( $self->render_controls ); - my $table = $self->{session}->make_element( "table", class=>"ep_search_fields" ); + my $table = $self->{session}->make_element( "div", class=>"ep_search_fields" ); $form->appendChild( $table ); $table->appendChild( $self->render_search_fields ); @@ -742,12 +742,29 @@ sub render_search_fields foreach my $sf ( $self->{processor}->{search}->get_non_filter_searchfields ) { + my $label; + my $field; + if ( $sf->{"field"}->get_type() eq "namedset" ) + { + # we want a legend and a label + $label = $self->{session}->make_element( "span", id=>$sf->get_form_prefix."_label" ); + $label->appendChild( $sf->render_name ); + + my $legend = EPrints::Utils::tree_to_utf8( $sf->render_name ); + $field = $sf->render( legend => $legend ); + } + else { + $label = $self->{session}->make_element( "span", id=>$sf->get_form_prefix."_label" ); + $label->appendChild( $sf->render_name ); + $field = $sf->render(); + } + $frag->appendChild( $self->{session}->render_row_with_help( help_prefix => $sf->get_form_prefix."_help", help => $sf->render_help, - label => $sf->render_name, - field => $sf->render, + label => $label, + field => $field, no_toggle => ( $sf->{show_help} eq "always" ), no_help => ( $sf->{show_help} eq "never" ), ) ); @@ -769,6 +786,7 @@ sub render_anyall_field my $menu = $self->{session}->render_option_list( name=>"satisfyall", + 'aria-labelledby'=>"satisfyall_label", values=>[ "ALL", "ANY" ], default=>( defined $self->{processor}->{search}->{satisfy_all} && $self->{processor}->{search}->{satisfy_all}==0 ? "ANY" : "ALL" ), @@ -777,10 +795,11 @@ sub render_anyall_field "ANY" => $self->{session}->phrase( "lib/searchexpression:any" )} ); + my $label = $self->{session}->make_element( 'span', id=>"satisfyall_label" ); + $label->appendChild( $self->{session}->html_phrase( "lib/searchexpression:must_fulfill" ) ); return $self->{session}->render_row_with_help( no_help => 1, - label => $self->{session}->html_phrase( - "lib/searchexpression:must_fulfill" ), + label => $label, field => $menu, ); } diff --git a/perl_lib/EPrints/Plugin/Screen/Search.pm b/perl_lib/EPrints/Plugin/Screen/Search.pm index 3e1fd978..deec8e94 100644 --- a/perl_lib/EPrints/Plugin/Screen/Search.pm +++ b/perl_lib/EPrints/Plugin/Screen/Search.pm @@ -297,6 +297,10 @@ sub render_simple_form my $form = $self->{session}->render_form( "get" ); $div->appendChild( $form ); + my $label = $xml->create_element( "label", for => "q_merge", class => "ep_lbl_merge" ); + $label->appendChild( $session->html_phrase( "lib/searchexpression:merge" ) ); + $form->appendChild( $label ); + # avoid adding "dataset", which is selectable here $form->appendChild( $self->SUPER::render_hidden_bits ); @@ -307,13 +311,14 @@ sub render_simple_form $form->appendChild( $self->render_preamble ); - $form->appendChild( $self->{processor}->{search}->render_simple_fields ); + $form->appendChild( $self->{processor}->{search}->render_simple_fields( 'aria-labelledby' => $session->phrase( "lib/searchexpression:action_search" ) ) ); $input = $xml->create_element( "input", type => "submit", name => "_action_search", - value => $self->{session}->phrase( "lib/searchexpression:action_search" ), + value => $session->phrase( "lib/searchexpression:action_search" ), class => "ep_form_action_button", + id => $session->phrase( "lib/searchexpression:action_search" ), ); $form->appendChild( $input ); @@ -356,7 +361,7 @@ sub render_dataset { $input->setAttribute( checked => "yes" ); } - my $label = $xml->create_element( "label" ); + my $label = $xml->create_element( "label", id=>$datasetid ); $frag->appendChild( $label ); $label->appendChild( $input ); $label->appendChild( $session->html_phrase( "datasetname_$datasetid" ) ); diff --git a/perl_lib/EPrints/Repository.pm b/perl_lib/EPrints/Repository.pm index 8849c31e..160c4e8f 100644 --- a/perl_lib/EPrints/Repository.pm +++ b/perl_lib/EPrints/Repository.pm @@ -3260,21 +3260,25 @@ sub render_row_with_help } - my $tr = $self->make_element( "tr", class=>$parts{class} ); + my $tr = $self->make_element( "div", class=>$parts{class} . "ep_table_row" ); # # COL 1 # - my $th = $self->make_element( "th", class=>"ep_multi_heading" ); - $th->appendChild( $parts{label} ); - $th->appendChild( $self->make_text( ":" ) ); + my $th = $self->make_element( "div", class=>"ep_multi_heading ep_table_cell" ); + if ( ref $parts{label} ne "" ) + { + $th->appendChild( $parts{label} ); + } $tr->appendChild( $th ); if( !defined $parts{help} || $parts{no_help} ) { - my $td = $self->make_element( "td", class=>"ep_multi_input", colspan=>"2" ); + my $td = $self->make_element( "div", class=>"ep_multi_input ep_table_cell" ); $tr->appendChild( $td ); $td->appendChild( $parts{field} ); + my $td2 = $self->make_element( "div", class=>"ep_table_cell" ); + $tr->appendChild( $td2 ); return $tr; } @@ -3291,7 +3295,7 @@ sub render_row_with_help $colspan = 1; } - my $td = $self->make_element( "td", class=>"ep_multi_input", colspan=>$colspan, id=>$parts{help_prefix}."_outer" ); + my $td = $self->make_element( "div", class=>"ep_multi_input ep_table_cell", colspan=>$colspan, id=>$parts{help_prefix}."_outer" ); $tr->appendChild( $td ); my $inline_help = $self->make_element( "div", id=>$parts{help_prefix}, class=>$inline_help_class ); @@ -3312,7 +3316,7 @@ sub render_row_with_help # help toggle # - my $td2 = $self->make_element( "td", class=>"ep_multi_help ep_only_js_table_cell ep_toggle" ); + my $td2 = $self->make_element( "div", class=>"ep_multi_help ep_only_js_table_cell ep_toggle ep_table_cell" ); my $show_help = $self->make_element( "div", class=>"ep_sr_show_help ep_only_js", id=>$parts{help_prefix}."_show" ); my $helplink = $self->make_element( "a", onclick => "EPJS_blur(event); EPJS_toggleSlide('$parts{help_prefix}',false,'block');EPJS_toggle('$parts{help_prefix}_hide',false,'block');EPJS_toggle('$parts{help_prefix}_show',true,'block');return false", href=>"#" ); $show_help->appendChild( $self->html_phrase( "lib/session:show_help",link=>$helplink ) ); @@ -3454,6 +3458,7 @@ sub render_option_list # values : # labels : # name : + # legend : # checkbox : # defaults_at_top : move items already selected to top # of list, so they are visible. @@ -3507,11 +3512,14 @@ sub render_option_list if( $params{checkbox} ) { - my $table = $self->make_element( "table", cellspacing=>"10", border=>"0", cellpadding=>"0" ); - my $tr = $self->make_element( "tr" ); - $table->appendChild( $tr ); - my $td = $self->make_element( "td", valign=>"top" ); - $tr->appendChild( $td ); + my $fieldset = $self->make_element( "fieldset", style=>"display: table; border: 0;" ); + my $legend = $self->make_element( "legend", id=> "all_".$params{name}, class=>"ep_field_legend sr-only" ); + $legend->appendChild( $self->make_text( $params{legend} ) ); + $fieldset->appendChild( $legend ); + my $rowdiv = $self->make_element( "div", style=>"display: table-row;" ); + $fieldset->appendChild( $rowdiv ); + my $celldiv = $self->make_element( "div", style=>"display: table-cell;" ); + $rowdiv->appendChild( $celldiv ); my $i = 0; my $len = scalar @$pairs; foreach my $pair ( @{$pairs} ) @@ -3519,22 +3527,22 @@ sub render_option_list my $div = $self->make_element( "div" ); my $label = $self->make_element( "label" ); $div->appendChild( $label ); - my $box = $self->render_input_field( type=>"checkbox", name=>$params{name}, value=>$pair->[0], class=>"ep_form_checkbox" ); + my $box = $self->render_input_field( type=>"checkbox", name=>$params{name}, value=>$pair->[0], class=>"ep_form_checkbox", 'aria-describedby'=>"all_".$params{name} ); $label->appendChild( $box ); $label->appendChild( $self->make_text( " ".$pair->[1] ) ); if( $defaults{$pair->[0]} ) { $box->setAttribute( "checked" , "checked" ); } - $td->appendChild( $div ); + $celldiv->appendChild( $div ); ++$i; if( $len > 5 && int($len / 2)==$i ) { - $td = $self->make_element( "td", valign=>"top" ); - $tr->appendChild( $td ); + $celldiv = $self->make_element( "div", style=>"display: table-cell;" ); + $rowdiv->appendChild( $celldiv ); } } - return $table; + return $fieldset; } @@ -3544,6 +3552,10 @@ sub render_option_list { $element->setAttribute( "multiple" , "multiple" ); } + if( defined $params{"aria-labelledby"} ) + { + $element->setAttribute( "aria-labelledby" , $params{"aria-labelledby"} ); + } my $size = 0; foreach my $pair ( @{$pairs} ) { diff --git a/perl_lib/EPrints/XHTML.pm b/perl_lib/EPrints/XHTML.pm index f66ab742..022cbe4d 100644 --- a/perl_lib/EPrints/XHTML.pm +++ b/perl_lib/EPrints/XHTML.pm @@ -158,22 +158,29 @@ sub input_field my( $self, $name, $value, @opts ) = @_; my $noenter; + my $noid = 0; for(my $i = 0; $i < @opts; $i+=2) { if( $opts[$i] eq 'noenter' ) { (undef, $noenter) = splice(@opts,$i,2); - last; } + if ( $opts[$i] eq 'type' && $opts[$i+1] eq 'checkbox' ) + { + $noid = 1; + } } if( $noenter ) { push @opts, onkeypress => 'return EPJS_block_enter( event )'; } + if ( !$noid ) + { + push @opts, id => $name; + } return $self->{repository}->xml->create_element( "input", name => $name, - id => $name, value => $value, @opts ); } From 1d55d1995627a16fbfcc9fddb258727cf0389469 Mon Sep 17 00:00:00 2001 From: EDumbill Date: Mon, 17 Aug 2020 17:02:17 +0100 Subject: [PATCH 8/9] Created accessibility page, accessibility roadmap page, and update accessibility phrases --- lib/lang/en/phrases/accessibility.xml | 60 +++- lib/lang/en/static/accessibility.xpage | 127 +++++++ .../en/static/accessibility_roadmap.xpage | 338 ++++++++++++++++++ 3 files changed, 508 insertions(+), 17 deletions(-) create mode 100644 lib/lang/en/static/accessibility.xpage create mode 100644 lib/lang/en/static/accessibility_roadmap.xpage diff --git a/lib/lang/en/phrases/accessibility.xml b/lib/lang/en/phrases/accessibility.xml index 88317eab..cc7c1b91 100755 --- a/lib/lang/en/phrases/accessibility.xml +++ b/lib/lang/en/phrases/accessibility.xml @@ -1,22 +1,48 @@ - + - - [name of organisation] - - [number] - - [date] - - [add name of organisation that carried out test, or indicate that you did your own testing] - - [add link to explanation of how you decided which pages to test] - - [add link to roadmap] - - [date when it was first published] - - [date when it was first published] +LSHTM +LSHTM Research Online +020 7299 4670 +comms@lshtm.ac.uk +5 working +comms@lshtm.ac.uk +12/08/2020 +12/08/2020 +CoSector, University of London +[testing approach] +[accessibility roadmap] +12/08/2020 +If you find any problems not listed on this page or need information in a different format like accessible pdf, large print, easy read, audio recording or braille, please contact: comms@lshtm.ac.uk +Communication and Engagement team at LSHTM +We do not currently provide a text relay service for people who are D/deaf, hearing impaired or have a speech impediment but there are plans in place to acquire a license for SensusAccess. This is a self-service solution that allows students and staff to automatically convert documents into a range of alternate media, including audio; e-books; and digital Braille. It also converts inaccessible documents such as image-only PDF files, JPG pictures and Microsoft PowerPoint presentations into more accessible formats. +Information about contacting the team can be found at on the
contact us page. + + homepage + about page + browse items page + item summary page + item details page + 'type' stage of the deposit workflow + 'upload' stage of the deposit workflow + 'details' stage of the deposit workflow + 'sujects' stage of the deposit workflow + 'deposit' stage of the deposit workflow + search page + advanced search page + user login and logout page + user profile page + manage deposits page + review page + admin page + IR stats reports page + reports page + search history page + page phrase editor + subject editor + + +This repository was tested using WAVE's web accessibility tool. This tool returns a comprehensive list of features that may limit the ability of users to access a website, especially those using assistive technology such as screen readers. We ran this tool on a version of the repository without branding customisation, covering the pages that users most frequently interact with. diff --git a/lib/lang/en/static/accessibility.xpage b/lib/lang/en/static/accessibility.xpage new file mode 100644 index 00000000..ff1e6793 --- /dev/null +++ b/lib/lang/en/static/accessibility.xpage @@ -0,0 +1,127 @@ + + + + Accessibility statement for + + +

This website is run by . We want as many people as possible to be able to use this website. For example, that means you should be able to:

+ +
    +
  • change colours, contrast levels and fonts
  • +
  • zoom in up to 300% without the text spilling off the screen
  • +
  • navigate most of the website using just a keyboard
  • +
  • navigate most of the website using speech recognition software
  • +
  • listen to most of the website using a screen reader (including the most recent versions of JAWS, NVDA and VoiceOver)
  • +
+ +

We’ve also made the website text as simple as possible to understand.

+ +

AbilityNet has advice on making your device easier to use if you have a disability.

+ +

How accessible this website is

+ +

We know some parts of are not fully accessible:

+ +
    +
  • most older PDF documents are not fully accessible to screen reader software
  • +
  • some images (including linked images) do not have alternative text descriptions
  • +
  • some form controls do not have an associated label
  • + +
+

More details about areas of that are not fully accessible can be found below in the 'Non compliance with the accessibility regulations' section of this statement.

+ +

What to do if you cannot access parts of this website

+ +
    +
  • call
  • +
+ +

We’ll consider your request and get back to you in days.

+ +

Reporting accessibility problems with this website

+ +

We’re always looking to improve the accessibility of this website. If you find any problems not listed on this page or think we’re not meeting accessibility requirements, contact : + .

+ +

Enforcement procedure

+ +

The Equality and Human Rights Commission (EHRC) is responsible for enforcing the Public Sector Bodies (Websites and Mobile Applications) (No. 2) Accessibility Regulations 2018 (the ‘accessibility regulations’). If you’re not happy with how we respond to your complaint, contact the Equality Advisory and Support Service (EASS).

+ +

Contacting us by phone

+

+

+ +

Technical information about this website’s accessibility

+ +

is committed to making its website accessible, in accordance with the Public Sector Bodies (Websites and Mobile Applications) (No. 2) Accessibility Regulations 2018.

+ +

Compliance status

+ +

This website is not compliant with the Web Content Accessibility Guidelines version 2.1 AA standard. The non-accessible sections are listed below.

+ +

Non accessible content

+ +

The content listed below is non-accessible for the following reasons.

+ +

Non compliance with the accessibility regulations

+ +

+

  • Some images, including linked images, do not have any alternative texts associated with them.
  • +
  • Some form controls do not have associated names.
  • +
  • The document language is missing from most pages.
  • +
  • Some links do not have explanatory text associated with them.
  • +
  • The contrast in some parts of the website is very low.
  • +
  • Some tables do not have headers for columns or rows.
  • +
  • Some pages do not have page regions, such as headers or banners, which help users navigate pages.
  • +
  • Some pages contain several links to the same source.
  • +
  • Some pages contain very small text.
  • +
  • Some pages contain layout tables, which may be diffiult to navigate with screen readers.
  • +
  • Heading levels are skipped on some pages, this might make navigating the page using a keyboard more difficult.
  • +
  • The title attribute value (advisory information that appears when user hovers over an element) is the same as the title text in some instances.
  • +
  • Some groups of check boxes are not enclosed in fieldsets, which may make them more difficult to navigate with screen readers.
  • +
  • Some event handler links may only respond to either mouse or keyboard.
  • +
  • The text of some links may not make sense out of context or may contain extraneous text.
  • +
  • Some pages contain javascript jump menus, which may make navigating the website by keyboard difficult.
  • +

    +

    These issues will be resolved in a planned upgrade to this repository.

    + +

    Disproportionate burden

    + +

    None of the issues listed above present a disproportionate burden to fix. They will all be resolved as part of a planned upgrade.

    + +

    Content that’s not within the scope of the accessibility regulations

    + +

    PDFs and other documents

    + +

    As is an open access research repository, the principal content made available to users are research outputs such as articles, papers, posters and reports, many of which are PDF documents. Many PDF documents, especially older ones, are not fully accessible to screen reader software and do not contain other common accessibility features. In particular:

    + +
      +
    • many documents, especially older ones, do not conform to the PDF/A archiving format.
    • +
    • many lack bookmarks or document titles, therefore failing to meet WCAG 2.1 success criteria 2.4.5 and 2.4.2.
    • +
    • many discuss scientific or scholarly concepts which may be abbreviated with no mechanism for discovering the meaning of the abbreviations, or unusual words arising from scholarly discourse without definitions. These issues each fail WCAG 2.1 criteria 3.1.4 and 3.1.1 respectively.
    • +
    • there may be some documents that fail to specify their human language, thereby failing WCAG 2.1 success criterion 3.1.1.
    • +
    • many documents may not reflow satisfactorily. This fails WCAG 2.1 success criterion 1.4.10.
    • +
    + +

    What we’re doing to improve accessibility

    + +

    Our shows how and when we plan to improve accessibility on this website.

    + +

    Preparation of this accessibility statement

    + +

    This statement was prepared on . It was last updated on .

    + +

    This website was last tested on The test was carried out by .

    + +

    We used this to decide on a sample of pages to test.

    + + +
    +
    diff --git a/lib/lang/en/static/accessibility_roadmap.xpage b/lib/lang/en/static/accessibility_roadmap.xpage new file mode 100644 index 00000000..e56d946d --- /dev/null +++ b/lib/lang/en/static/accessibility_roadmap.xpage @@ -0,0 +1,338 @@ + + + + Accessibility roadmap for + + + +

    This page details all of the known accessibility issues affecting , the method that was used to find issues, and the plans in place to fix them.

    +
    + +

    Plans for fixing known accessibility issues

    +

    All of the issues that have been highlighted in this review will be fixed in a planned upgrade to this repository

    +
    + +

    Method for testing accessibility

    +

    +
    + +

    Known accessibility issues, listed by page

    +

    These issues are listed by page. Pages that are publicly accessible are listed first, and those for repository administrators can be found lower down. The number in brackets following the description represents the number of instances of that issue on the page. Below is a list of all the accessibility issues known to affect with an explanation of what they mean.

    +
      +
    • Document language missing: The language that the document is written in is not declared. This may cause issues with screen readers and with automatic translation.
    • +
    • No page regions: There are no page regions or ARIA landmarks defined. These identify significant page areas and help users navigate pages.
    • +
    • Missing alternative text:There is no alternative text given for an image included in the page. This means that those using screen readers will not be able to access this content.
    • +
    • Linked image missing alternative text: There is no alternative text given for an image that is linked to from this page. This means that a screen reader has no content to present to the user regarding the function of a link.
    • +
    • Missing form label: A form control does not have a properly associated text label. This means that the function of the form control may not be presented to those using screen readers. The lack of visible description may also make the page harder to navigate for all users.
    • +
    • Empty link: A link does not contain any explanatory text. This means that the purpose of the link is not presented to the user, which may cause confusion for those using screen readers.
    • +
    • Very low contrast: There is very low contrast between foreground and background colours. This may make reading text on this page difficult for users, particular those with low vision.
    • +
    • Redundant link: Adjacent links go to the same location. This creates additional navigation and repetition for those using keyboard and screen readers.
    • +
    • Very small text: Text is very small. This may make reading text on this page difficult for users, particular those with low vision.
    • +
    • Layout table: Layout tables are being used to position content visually, for example, to create columns or align content neatly for sighted users. These can introduce reading and navigation order issues especially for those using screen readers.
    • +
    • Skipped heading level: A heading level is skipped. This may cause confusion or difficulty for those using keyboard navigation or screen readers.
    • +
    • Redundant title text: The title attribute is the same as text or alternative text.
    • +
    • Missing fieldset: A group of check boxes or radio buttons is not enclosed in a fieldset. This may make it difficult for those using screen readers to identify the purpose of check boxes or radio buttons.
    • +
    • Suspicious link text: A link contains extraneous text or may not make sense out of context. This may cause confusion about the purpose of the link.
    • +
    • Nearby image has same alternative text: Two images near each other have the same alternative text. This means that those using screen readers will not be able to distinguish the difference between the images.
    • +
    • Javascript jump menu: A javascript jump menu is a select element that triggers a new web page with the onchange event handler. This may cause difficulty for users navigating the page with a keyboard as the page will change with each change in the select menu.
    • +
    • Device dependent event handler: Event handlers may not be accessible for both keyboard and mouse users.
    • +
    +
    + +

    All pages

    +

    The following issues affect all pages on

    +
      +
    • Document language missing
    • +
    • No page regions
    • +
    +
    + +

    Publicly accessible pages

    + +

    Homepage

    + +

    The following accessibility issues are known to affect the :

    + +
      +
    • Missing alternative text (1)
    • +
    • Linked image missing alternative text (2)
    • +
    • Missing form label (1)
    • +
    • Empty link (2)
    • +
    • Very low contrast (5)
    • +
    • Redundant link (4)
    • +
    • Very small text (1)
    • +
    • Layout table (1)
    • +
    +
    + +

    About

    + +

    The following accessibility issues are known to affect the :

    + +
      +
    • Missing form label (1)
    • +
    • Very low contrast (1)
    • +
    • Redundant link (1)
    • +
    • Layout table (1)
    • +
    +
    + +

    Browse

    + +

    The following accessibility issues are known to affect the :

    + +
      +
    • Linked image missing alternative text (1)
    • +
    • Missing form label (1)
    • +
    • Very low contrast (1)
    • +
    • Redundant link (4)
    • +
    +
    + +

    Summary page

    + +

    The following accessibility issues are known to affect the :

    + +
      +
    • Missing form label (1)
    • +
    • Redundant link (1)
    • +
    • Layout table (2)
    • +
    • Skipped heading level (1)
    • +
    • Redundant title text (1)
    • +
    +
    + +

    Item detail

    + +

    The following accessibility issues are known to affect the :

    + +
      +
    • Missing form label (1)
    • +
    • Very low contrast (1)
    • +
    • Redundant link (1)
    • +
    • Layout table (2)
    • +
    • Skipped heading level (1)
    • +
    • Redundant title text (1)
    • +
    +
    + +

    Deposit workflow - item type

    + +

    The following accessibility issues are known to affect the :

    + +
      +
    • Missing form label (1)
    • +
    • Redundant link (1)
    • +
    • Layout table (3)
    • +
    • Missing fieldset (1)
    • +
    +
    + + +

    Deposit workflow - upload

    + +

    The following accessibility issues are known to affect the :

    + +
      +
    • Missing form label (18)
    • +
    • Redundant link (1)
    • +
    • Layout table (3)
    • +
    +
    + +

    Deposit workflow - details

    + +

    The following accessibility issues are known to affect the :

    + +
      +
    • Linked image missing alternative text (21)
    • +
    • Missing form label (53)
    • +
    • Empty table header (2)
    • +
    • Redundant link (21)
    • +
    • Very small text (9)
    • +
    • Layout table (35)
    • +
    • Missing fieldset (2)
    • +
    +
    + +

    Deposit workflow - subject

    + +

    The following accessibility issues are known to affect the :

    + +
      +
    • Missing form label (3)
    • +
    • Redundant link (1)
    • +
    • Layout table (4)
    • +
    +
    + +

    Deposit workflow - deposit

    + +

    The following accessibility issues are known to affect the :

    + +
      +
    • Missing form label (1)
    • +
    • Layout table (4)
    • +
    +
    + +

    Search

    + +

    The following accessibility issues are known to affect the :

    + +
      +
    • Missing form label (3)
    • +
    • Redundant link (1)
    • +
    • Layout table (2)
    • +
    +
    + +

    Advanced search

    + +

    The following accessibility issues are known to affect the :

    + +
      +
    • Missing form label (1)
    • +
    • Redundant link (1)
    • +
    • Layout table (2)
    • +
    +
    + +

    Login/logout

    + +

    The following accessibility issues are known to affect the :

    + +
      +
    • Missing form label (3)
    • +
    • Layout table (2)
    • +
    +
    + +

    Profile

    + +

    The following accessibility issues are known to affect the :

    + +
      +
    • Missing form label (1)
    • +
    • Skipped heading level (3)
    • +
    • Suspicious link text (1)
    • +
    +
    +
    + +

    Pages for repository administrators

    + +

    Manage deposits

    + +

    The following accessibility issues are known to affect the :

    + +
      +
    • Missing form label (3)
    • +
    • Very low contrast (1)
    • +
    • Empty table header (5)
    • +
    • Redundant link (2)
    • +
    • Layout table (10)
    • +
    • Redundant title text (3)
    • +
    • Nearby image has same alternative text (1)
    • +
    • Possible table caption (1)
    • +
    +
    + +

    Review

    + +

    The following accessibility issues are known to affect the :

    + +
      +
    • Missing form label (5)
    • +
    • Very low contrast (1)
    • +
    • Empty table header (6)
    • +
    • Redundant link (2)
    • +
    • Layout table (11)
    • +
    • Possible table caption (1)
    • +
    • Missing fieldset (1)
    • +
    +
    + +

    Admin

    + +

    The following accessibility issues are known to affect the :

    + +
      +
    • Missing form label (1)
    • +
    • Redundant link (1)
    • +
    • Layout table (1)
    • +
    +
    + +

    IR stats

    + +

    The following accessibility issues are known to affect the :

    + +
      +
    • Missing alternative text (3)
    • +
    • Linked image missing alternative text (5)
    • +
    • Missing form label (7)
    • +
    • Empty link (4)
    • +
    • Very low contrast (2)
    • +
    • Empty table header (1)
    • +
    • Redundant link (1)
    • +
    • Very small text (79)
    • +
    • Layout table (8)
    • +
    • Javascript jump menu (1)
    • +
    +
    + +

    Reports

    + +

    The following accessibility issues are known to affect the :

    + +
      +
    • Missing alternative text (1)
    • +
    • Linked image missing alternative text (2)
    • +
    • Missing form label (14)
    • +
    • Empty link (2)
    • +
    • Very low contrast (2)
    • +
    • Redundant link (1)
    • +
    • Very small text (1)
    • +
    • Layout table (4)
    • +
    • Missing fieldset (2)
    • +
    +
    + +

    History

    + +

    The following accessibility issues are known to affect the :

    + +
      +
    • Missing form label (2)
    • +
    • Redundant link (1)
    • +
    • Layout table (1)
    • +
    +
    + +

    Page phrase editor

    + +

    The following accessibility issues are known to affect the :

    + +
      +
    • Missing form label (2)
    • +
    • Redundant link (1)
    • +
    • Layout table (1)
    • +
    • Device dependent event handler (2906)
    • +
    +
    + +

    Subject editor

    + +

    The following accessibility issues are known to affect the :

    + +
      +
    • Missing form label (3)
    • +
    • Empty table header (1)
    • +
    • Layout table (1)
    • +
    + + + +
    +
    From 4a7079efcddb7339b8809ab80ff8e5316b8a1f86 Mon Sep 17 00:00:00 2001 From: EDumbill Date: Mon, 17 Aug 2020 17:04:51 +0100 Subject: [PATCH 9/9] Removed reference to specific repository --- lib/lang/en/phrases/accessibility.xml | 52 +++++++++++++-------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/lib/lang/en/phrases/accessibility.xml b/lib/lang/en/phrases/accessibility.xml index cc7c1b91..bbb89fa7 100755 --- a/lib/lang/en/phrases/accessibility.xml +++ b/lib/lang/en/phrases/accessibility.xml @@ -2,45 +2,45 @@ -LSHTM -LSHTM Research Online -020 7299 4670 -comms@lshtm.ac.uk -5 working -comms@lshtm.ac.uk -12/08/2020 -12/08/2020 +[name of organisation] +[repository name] +[contact number] +[reports contact email] +[number] +[accessibility email] +[date] +[date] CoSector, University of London [testing approach] [accessibility roadmap] -12/08/2020 +[date] If you find any problems not listed on this page or need information in a different format like accessible pdf, large print, easy read, audio recording or braille, please contact: comms@lshtm.ac.uk Communication and Engagement team at LSHTM -We do not currently provide a text relay service for people who are D/deaf, hearing impaired or have a speech impediment but there are plans in place to acquire a license for SensusAccess. This is a self-service solution that allows students and staff to automatically convert documents into a range of alternate media, including audio; e-books; and digital Braille. It also converts inaccessible documents such as image-only PDF files, JPG pictures and Microsoft PowerPoint presentations into more accessible formats. -Information about contacting the team can be found at on the contact us page. +[text relay response] +Information about contacting the team can be found at on the [link to contact page] contact us page. - homepage - about page - browse items page + [homepage] + about page + browse items page item summary page item details page 'type' stage of the deposit workflow 'upload' stage of the deposit workflow 'details' stage of the deposit workflow - 'sujects' stage of the deposit workflow + 'subjects' stage of the deposit workflow 'deposit' stage of the deposit workflow - search page - advanced search page - user login and logout page + search page + advanced search page + user login and logout page user profile page - manage deposits page - review page - admin page - IR stats reports page - reports page - search history page - page phrase editor - subject editor + manage deposits page + review page + admin page + IR stats reports page + reports page + search history page + page phrase editor + subject editor This repository was tested using WAVE's web accessibility tool. This tool returns a comprehensive list of features that may limit the ability of users to access a website, especially those using assistive technology such as screen readers. We ran this tool on a version of the repository without branding customisation, covering the pages that users most frequently interact with.