Enable automated accessibility testing #1151
Fix found accessibility failures:
Updated to match https://www.gov.uk/bank-holidays and pass WCAG AA contrast ratio
If the referenced aria-controls attribute points to the ID of an element on the page that’s not present the attribute is invalid. Equally, if JS fails to load the inputs will not be controlling anything. * Dynamically add the attribute to all checkboxes if the referenced ID is used and the element is on the page * Update accessibility criteria to reference issue
* Fixes aXe error: https://dequeuniversity.com/rules/axe/2.3/checkboxgroup?application=axeA PI * Generates a unique ID for the option select label * ARIA group: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Tec hniques/Using_the_group_role On VoiceOver for Mac this announces the number of checkboxes in the group when you tab into it. Following the first checkbox it does not read out the group name each time.
* Larger font-size for at least ratio of 3.5:0, stop failing aXe tests * Add further examples and links to usage * Update styles to more closely match the bank holidays view
30s isn’t long enough to compile all the static assets. Increase to 2 minutes to allow tests to run. Switch from require phantomjs/poltergeist (https://github.com/colszowka/phantomjs-gem/blob/master/lib/phantomjs/po ltergeist.rb) to a modified version that specifies a timeout.
Changes in 715a9cd are picked up by JAWS 17 and 18. They make the reading of each checkbox more verbose by reading the group name before the checkbox name each time. Unlike on VoiceOver which does it the first time but not the following times. This may slow down users when navigating through a list of items in a group with a long name.
NVDA behaves the same before and after, ie it doesn't support the aria group role.
JAWS 17 and 18:
VoiceOver on Mac:
VoiceOver on iOS: