I am currently updating my website and one of the new features that I am implementing in my new website is accessibility functionality. I wanted to share my findings in the hope that Manager can benefit from my research to make the program more accessible.
Focus States
Skip Keyboard Navigation
Semantic HTML
Font types, font sizes, colour contrasts
Firefox Reader View, Edge Narrator, Apple Reader mode and dedicated screenreaders like Jaws and NVDA.
There is actually very little coding required to make a website compliant with WCAG - Web Content Accessibility Guidelines. The biggest time consuming aspect for me was deciding on colour schemes that worked with WCAG - the actual css and html coding is really minimal.
A quick overview of accessible websites versus Screen Readers.
If you design your website with very readable fonts, font sizes, colour contrasts, you use semantic html (which one should be using anyway) and you implement Focus states and Skip keyboard navigation, your website will effectively be compliant with AA level 2.1 version WCAG which is the main one to aim for as it’s very easy to achieve this standard with very little work. I would consider this to be the bare minimum for a modern website nowadays. To achieve AAA level does require a lot more work and depends entirely on the target audience of the website in question.
When you create an accessible website that meets AA level 2.1 version WCAG you have implemented the following in the main:
Keyboard navigation for users who don’t or can’t use a mouse. This is quite basic to setup in html and css especially as keyboard navigation works out of the box for websites anyway. It’s a question of optimising keyboard navigation on your website, making it more easy to see which link you are focused on as well as avoiding unnecessary keyboard entry to get to the desired link, which is currently the main problem in Manager.
Support for users who’s eyesight requires a higher level of contrast, possibly larger fonts or more easy to read fonts. This is easily manageable by using a website like Colour Contrast Checker to ensure that all your fonts against the background colours you are using have sufficient contrast for the font size and colour. As long as your website is properly responsive using em or rem for font sizes against a default html font size of say 16px, it’s trivial for the website to scale everything well when a user adjusts the default html size to a larger font causing everything else to scale in proportion. I will say that the contrasts of some things in Manager is not sufficiently high, so it’s not easy to see what is active.
For users who need websites with minimal visual distractions - Firefox Reader View, Edge Narrator Mode or Apple Reader Mode offer the ability for autistic users to view the website in simple black and white, with no visual distractions. This probably is not relevant for Manager.
As such, for a lot of users a dedicated screen reader is not necessarily required as it is possible to achieve an accessible website by doing the above. However, support for keyboard users, users with vision disabilities and last people with say autism for example, a screen reader or firefox reader view etc all benefit if the website is accessible using semantic html, focus states, skip navigation menu etc. So it’s not a question of one or the other. The aim should be to create an accessible website that enables all visitors to use the website optimally and they can potentially use a screen reader to further enhance their browsing experience.
Focus States:
/* Apply focus styles to all links */
a:focus-visible {
outline: 2px solid red; /* Add an outline for focus */
}
The above will create a red border of 2 pixels when the keyboard is focused on that hyperlink element. That is literally all you need to do to apply focus states for standard links throughout your website. I went with red because Manager’s brand colour is red. This is in your css file obviously. Browsers have a default colour for focus state. The ideal should be to use a colour that works with your colour scheme.
Skip Keyboard Navigation Menu
Css coding
/* Apply focus styles to skip navigation link */
.skip-navigation:focus {
color: navy; /* Navy font colour */
background-color: grey; /* grey background colour */
width: 30%;
height: auto;
border-radius: 15px;
text-align:center;
font-size:1.2rem;
z-index:100;
/* Flexbox centering */
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}
/* Hide the skip navigation link visually */
.skip-navigation {
position: absolute;
left: -100%;
top: auto;
}
This code cannot be copied into Manager and work out of the box as it will depend on the css coding for the rest of Manager. I am just providing it to demonstrate how little coding there actually is to create a skip navigation header.
What the coding does in the skip-navigation:focus area is creates a Skip to Main Content header when you press tab for the first time on the website. It will create the font in navy, with a grey background, a width of 30% with rounded corners and align the text in the center of the header. The font size will be 1.2rem and the z-index needs to be higher than any other z-index to ensure that this header is overlaid on top of any other header.
The flexbox centering section I used to ensure that the Skip to Main Content Header that is visible is in the center of the screenview and horizontally centered in the first element - which in my case will be my header.
The .skip-navigation section basically hides this header off screen so that users who use a mouse never see this.
Then all you need is to call the class in the header
<!-- Skip Navigation Link -->
<a class="skip-navigation" href="#main-content">Skip to main content</a>
and in your content files instead of you need to have
<main id="main-content">
as you need an “id” called main-content.
Now when keyboard users press tab, they are presented with a header that they can see saying “Skip to Main Content”. If they press enter, then they miss all the links on the navigation menu and go straight to the main content., When they tab again, they go to the first hyperlink in the main content section. This means that keyboard users don’t have to repeatedly scroll through the navigation menu on every single page to get to the hyperlinks that they want on the content page.
You could do similar functionality with Manager to enable keyboard users to browse LHS navigation menu or forms within a tab. The concept is the same really. My understanding is that the main problem with Manager is having to tab through every link on a page to get to the next tab on the LHS menu. Skip Navigation link and possibly hot links coding used appropriately for Manager would address this issue.
Font types, font sizes, colour contrasts
Use the Colour contrast website linked above for good contrasts. Ensure that all your font sizes are em or rem based on a default html font size of say 16px which ensures that Manager is responsive on any screen size, but equally ensure that browser users can adjust the html font size and all font sizes will scale correctly and properly for accessibility. And check with accessible websites about font readability as not all fonts are good fonts to use.
Firefox Reader View, Edge Narrator, Apple Reader mode and dedicated screenreaders like Jaws and NVDA.
If the website has been designed well, then browsers and screen readers can optimise and enhance the browsing experience for all users.
Semantic HTML
Ensuring that all pages follow a consistent format using well established html elements such as:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Manager Accounting</title>
<?php include "head.php";?>
</head>
<body>
<header class="header-white">
<div class="header">
<?php include "header.php";?>
</div>
</header>
<main id="main-content">
<h1>Banking</h1>
<article>
<p>payments</p>
</article>
</main>
<footer class="footer" id="footer">
<?php include "footer.php";?>
</footer>
</body>
</html>
ensures that browsers and screen readers can easily format web pages when you are using semantic html as the elements will all be standard, common elements. One should be using this for SEO and for good programing reasons as well.
Hopefully this will be of help to make Manager more accessible for various users. As you can see there is very little actual coding to get most of this done - although I suspect that Manager’s html is probably not semantic for screen readers. My website has a navigation menu and main content, so I can’t say how easy it would be to get the keyboard navigation issues sorted for manager as there is a need to jump in and out of forms back to navigation etc and hotkeys for printing, saving etc would be necessary, but all you need is “id’s” to jump to the correct link.