Ares 5.0 Accessibility Update
Ares Web DLL version 5.0.8.0 (delivered with Ares Server 5.0.19.0) and the accompanying web page release include a comprehensive set of changes to improve conformance with WCAG 2.1 Level AA accessibility standards. For the corresponding release notes entry, see the 5.0.19 release notes.
Upgrade Requirements​
For full WCAG 2.1 AA compliance, this update requires both the updated Web DLL and the updated web page templates.
| Component | Action Required |
|---|---|
| Ares Server Installer | Run the latest Ares Server Installer (5.0.19.0 or later). This updates the Web DLL to 5.0.8.0 and applies all database updates automatically. |
| Web Pages | Update web page files in both WebPages and LmsWebPages directories. See Web Page Changes below for details. |
Sites with customized web pages should review the changes carefully before updating. Back up your current web page directories before making any changes.
What's New in the DLL​
These changes affect the server-rendered HTML output from the DLL. They take effect automatically when the updated DLL is deployed.
Screen Reader Improvements​
ARIA Attributes for Menus and Controls​
Disabled navigation menu items are now rendered as focusable anchor elements with aria-disabled="true" instead of non-interactive <div> elements. Screen readers now correctly announce these items as disabled links rather than skipping them entirely.
Checkboxes in item tables (Hot List, Clone, and batch select columns) now include descriptive aria-label attributes that identify the associated item by title, giving screen reader users meaningful context for each checkbox.
The tag cloud component includes role="group" with an aria-label that identifies the tag type, allowing assistive technology to announce it as a related group of links.
Link Accessibility​
Fourteen anchor elements across item detail, course, and shared list views that used the invalid alt attribute on <a> elements have been corrected to use aria-label.
Three <select> dropdown elements (Visible to Students, Pickup Location, Loan Period) that lacked accessible names now have aria-label attributes.
Table Accessibility​
All DLL-generated HTML tables now have proper structural markup:
<tbody>closes before<tfoot>(previously<tfoot>was incorrectly nested inside<tbody>)- No-data tables now include
<tbody>wrappers around message rows - Tables with hidden column headers now render a visually hidden
<thead>(using theoffscreenCSS class) so that screen readers can still associate data cells with their headers - Empty header columns (Actions, Select) now contain visually hidden text instead of relying solely on
aria-labelon the<th>element - Sort links in table headers use
aria-labelinstead of the invalidaltattribute
Tables are wrapped in a <div class="table-responsive"> container with role="region", tabindex="0", and aria-labelledby pointing to the table caption. This allows keyboard users to scroll wide tables horizontally and provides an accessible label for the scrollable region.
ARIA Live Regions and Status Messages​
An aria-live="polite" announcement region is now included in the page header. Actions such as adding or removing items from a hot list, deleting alerts, reordering rows, and saving sort order now announce their result to screen readers via this region.
The session expired notification uses an alertdialog role with aria-modal="true", focus trapping, and keyboard handling so that screen reader users are immediately informed when their session ends.
Status messages on login pages use role="alert" to ensure screen readers announce login errors and session timeout messages.
Keyboard Navigation​
Collapsible Sections (GROUPTOGGLE)​
Item grouping toggle controls are now fully keyboard accessible:
- The toggle element is rendered as an
<a>withhref="#", making it focusable via Tab role="button"ensures screen readers announce it as an interactive buttonaria-expandedreflects the current visibility state (truewhen content is visible, toggling on click)aria-controlsidentifies the panel being toggled- Both Enter and Space keys activate the toggle (Space is handled via an
onkeydownhandler)
Keyboard-Accessible Table Sorting​
Sortable tables now include Move Up and Move Down buttons in each row, providing a keyboard-accessible alternative to drag-and-drop reordering. After a row is moved, the new position is announced via an ARIA live region, and focus is returned to the button that was activated. Button states are automatically updated to disable Move Up on the first row and Move Down on the last row.
Focus Visibility​
A :focus-visible rule with a 2px solid #000066 outline is applied across all pages, ensuring keyboard focus is always visible. The pell rich text editor content area also receives a visible focus outline that overrides its default outline: 0.
Skip Navigation Link​
A "Skip to Main Content" link is available in the page header, allowing keyboard users to bypass the navigation and jump directly to the main content area.
Label and Name Corrections​
Label-in-Name Fixes (WCAG 2.5.3)​
Several controls had accessible names that did not contain the visible text:
- Show Details links:
aria-labelchanged from "View details" to "Show details" to match the visible link text - Start Date / Stop Date inputs: accessible names now begin with the visible column header text (e.g., "Start Date - enter the start date for this item")
- Table filter inputs: the
titleattribute now matches the placeholder text ("Search {Column Name}" instead of the generic "Column filter text")
Instructor Select Label Association​
The <select> element for Instructor Username in the non-JavaScript code path was missing its id="InstructorUsername" attribute, preventing the <label for="InstructorUsername"> in the HTML template from associating correctly. The id attribute has been added.
Heading Hierarchy​
Heading levels on several pages have been corrected to maintain a proper hierarchy (e.g., <h4> changed to <h3> where the parent heading is <h2>).
Session Timeout and Form Data Preservation​
Session Expired Status Message​
A bug prevented the correct "session timed out" message from appearing on the login page after a session expired. The session flag is now correctly preserved so users see the appropriate timeout message instead of the generic login prompt.
FORMSTATE: Preserve Form Data Across Session Timeouts​
When a user's session expires while they are filling out a form, their entered data is now preserved and restored after they log back in. This uses a mechanism consistent with ILLiad and Aeon:
- Every authenticated page includes a hidden
<input name="FORMSTATE">field that contains a Base64-encoded snapshot of the current form parameters (excluding passwords and session IDs) - When a session expires and the user is redirected to the login page, the FORMSTATE value is carried through to the login form
- After successful re-authentication, the DLL decodes the FORMSTATE and restores the user to their previous page with form fields intact
FORMSTATE is limited to 8 KB of form data and is automatically excluded from login, registration, and password forms.
Template change required: The GLogon2.html template must contain the <#FORMSTATE> DLL tag inside the login <form> element. The default templates shipped with this release already include it. Sites using customized login templates should add <#FORMSTATE> inside their login form if they want session timeout form preservation.
Session Expired Modal​
When an AJAX request detects an expired session, a modal dialog now appears informing the user and providing a "Log In" button. The modal uses proper alertdialog semantics, traps focus, and is fully keyboard accessible.
Site Map Page​
A new Site Map page is available at ares.dll?Action=10&Form=3. It dynamically generates a list of all navigation links available to the current user. A link to the Site Map is included in the default footer template. This satisfies WCAG 2.4.5 (Multiple Ways) by providing an alternative way to locate pages.
New DLL Tag​
| Tag | Description |
|---|---|
<#FORMSTATE> | Renders a hidden input containing encoded form state for session timeout preservation. Place inside the <form> element in GLogon2.html. Outputs nothing on forms where serialization is not applicable. |
Web Page Changes​
The following changes apply to the customer-facing template files in both the WebPages (standard) and LmsWebPages (LTI/LMS) directories.
There are two ways to apply these changes:
- Download the complete updated web page set from the Atlas Systems customer portal and replace your web page directories. This is the recommended approach if you have not customized your web pages.
- Manually apply the changes described below to your existing customized web pages. Use this approach if you have made customizations you want to preserve.
- Back up your current web page directories before making any changes.
- If you have customized any of the files listed below, review each change carefully to merge it with your customizations.
- Changes marked as Required must be applied for the Ares server to function correctly with this release. Changes marked as Recommended improve accessibility or user experience and should be applied when possible.
Summary of Web Page Changes​
| Category | Description |
|---|---|
| Accessibility (WCAG 2.x) | Color contrast fixes, focus indicators, ARIA attributes, skip navigation, keyboard-accessible sorting, screen reader announcements, semantic HTML improvements |
| Session Management | New accessible session-expired modal dialog with AJAX detection |
| jQuery Upgrade | jQuery upgraded from 1.12.4 to 3.5.1; jQuery UI upgraded from 1.9.2 to 1.13.2 |
| Responsive Layout | New responsive CSS for WCAG 1.4.10 Reflow at 320px CSS width, viewport meta tag added |
| New Feature: Site Map | New SiteMap.html page and buildSiteMap.js for WCAG 2.4.5 compliance |
| Form Improvements | autocomplete attributes, FORMSTATE support, semantic fieldset/legend markup |
| Bug Fixes | HideLoanPeriod function fix, heading level corrections, HTML structure fixes |
Complete File List​
New Files​
| File | Directory | Description |
|---|---|---|
SiteMap.html | WebPages, LmsWebPages | Site map page (WCAG 2.4.5) |
js/buildSiteMap.js | WebPages, LmsWebPages | JavaScript to dynamically build site map from navigation |
Removed Files​
| File | Directory | Description |
|---|---|---|
js/jquery-1.5.1.min.js | WebPages, LmsWebPages | Removed obsolete bundled jQuery (now loaded from CDN) |
Modified Files — Include Files (Shared Components)​
| File | Directories | Change Summary |
|---|---|---|
include_head.html | WebPages, LmsWebPages | jQuery/jQuery UI upgrade, viewport meta tag |
include_header.html | WebPages | Added aria-alert-div; LmsWebPages: skip link moved to menu files |
include_header.html | LmsWebPages | Skip link commented out (moved to menu files), whitespace cleanup |
include_footer.html | WebPages, LmsWebPages | Added Site Map link |
include_menu.html | WebPages, LmsWebPages | Skip link added (LmsWebPages), aria-alert-div added, Ares Tools menu item changed from link to span |
include_instructorcoursemenu.html | LmsWebPages | Skip link and aria-alert-div added |
include_studentcoursemenu.html | LmsWebPages | Skip link and aria-alert-div added |
include_courseproxycoursemenu.html | LmsWebPages | Skip link and aria-alert-div added |
include_instructorsharedlistmenu.html | LmsWebPages | Skip link and aria-alert-div added |
include_fullproxysharedlistmenu.html | LmsWebPages | Skip link and aria-alert-div added |
include_instructorBatchMenu.html | WebPages, LmsWebPages | Improved ARIA labels, fixed hidden input placement |
include_studentBatchMenu.html | WebPages, LmsWebPages | Improved ARIA labels |
Modified Files — CSS Files​
| File | Directories | Change Summary |
|---|---|---|
css/main.css | WebPages, LmsWebPages | Color contrast fixes, responsive layout, focus indicators, rem units |
css/lti.css | LmsWebPages | Responsive nav, flow-root, min-height |
css/pell.min.css | WebPages, LmsWebPages | Contrast improvements for rich text editor |
css/rss.css | WebPages, LmsWebPages | Color contrast fixes |
css/tagCloud.css | WebPages, LmsWebPages | Pixel units converted to rem |
Modified Files — JavaScript Files​
| File | Directories | Change Summary |
|---|---|---|
js/aresajax.js | WebPages, LmsWebPages | Session expired modal, ARIA alerts, sort buttons, HideLoanPeriod fix |
js/aresTableFilter.js | WebPages, LmsWebPages | Empty column header labels, filter optimization |
js/aresMarkdown.js | WebPages, LmsWebPages | ARIA attributes for rich text editor |
js/aresBatchEditing.js | WebPages, LmsWebPages | Improved ARIA label text |
js/aresMenu.js | LmsWebPages | Dropdown close-on-open, space key handling, focus management |
js/fadeEffect.js | WebPages, LmsWebPages | Copyright year update only |
js/ltiContentItem.js | WebPages, LmsWebPages | Copyright year update only |
Modified Files — HTML Pages​
| File | Directories | Change Summary |
|---|---|---|
GLogon.html | WebPages, LmsWebPages | Viewport meta, autocomplete="off", copyright year |
GLogon2.html | WebPages, LmsWebPages | role="alert" on status, FORMSTATE added, autocomplete="off" |
ForgotPassword.html | WebPages, LmsWebPages | autocomplete="off" on username |
GCreateAccount.html | WebPages, LmsWebPages | autocomplete attributes, role="alert" on username span |
NewAuthRegistration.html | WebPages, LmsWebPages | autocomplete attributes, HTML structure fix, legend text fix |
ChangeUserInformation.html | WebPages, LmsWebPages | autocomplete attributes |
GSearchResults.html | WebPages | Removed empty onclick |
IItemSupply.html | WebPages, LmsWebPages | Replaced table layout with fieldset/legend/label |
ICourseCreate.html | WebPages, LmsWebPages | Heading level corrections (h3->h2, h4->h3) |
ICourseClone.html | LmsWebPages | Restructured indentation |
UCoursePassword.html | WebPages | Fixed page title, heading, typo, added label for password input |
UCourseMessageBoardNewThread.html | WebPages, LmsWebPages | InitializeEditor label parameter, body tag fix |
UCourseMessageBoardNewReply.html | WebPages, LmsWebPages | InitializeEditor label parameter |
ICourseMessageBoardNewThread.html | LmsWebPages | InitializeEditor label parameter |
ICourseMessageBoardNewReply.html | LmsWebPages | InitializeEditor label parameter |
USearch.html | WebPages, LmsWebPages | Removed caption, added role="presentation" |
Detailed Web Page Changes​
1. jQuery and jQuery UI Upgrade (Required)​
Files: include_head.html (WebPages and LmsWebPages)
jQuery has been upgraded from 1.12.4 to 3.5.1, and jQuery UI from 1.9.2 to 1.13.2. This addresses known security vulnerabilities in older jQuery versions.
Before:
<link rel="stylesheet" type="text/css" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/themes/smoothness/jquery-ui.css" />
<script src="//code.jquery.com/jquery-1.12.4.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/jquery-ui.min.js"></script>
After:
<link rel="stylesheet" type="text/css" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.13.2/themes/smoothness/jquery-ui.css" />
<script src="//code.jquery.com/jquery-3.5.1.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js"></script>
If you have custom JavaScript that depends on jQuery APIs deprecated or removed between 1.12.4 and 3.5.1, you may need to update that code. Common breaking changes include the removal of .size() (use .length instead) and changes to AJAX content type handling.
Additionally, a viewport meta tag has been added:
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
The bundled js/jquery-1.5.1.min.js file has been removed from both WebPages and LmsWebPages since jQuery is loaded from CDN.
2. Session Expired Modal (Required)​
Files: js/aresajax.js (WebPages and LmsWebPages)
A new accessible session-expired modal dialog has been added. When an AJAX call returns a session-expired code, a modal overlay is displayed with a "Log In" button that redirects to the login page. The modal uses proper ARIA attributes (role="alertdialog", aria-modal="true") and traps focus.
3. FORMSTATE Support on GLogon2.html (Required)​
Files: GLogon2.html (WebPages and LmsWebPages)
The <#FORMSTATE> tag has been added to the login form. This is required for proper server-side form state validation.
Before:
<form action="<#DLL>" method="post" class="f-wrap-1">
<input type="hidden" name="AresForm" value="Logon"/>
<div id="logonform">
After:
<form action="<#DLL>" method="post" class="f-wrap-1">
<input type="hidden" name="AresForm" value="Logon"/>
<#FORMSTATE>
<div id="logonform">
GLogon2.html is a DLL-processed page. The <#FORMSTATE> tag is required for correct operation with this release. If you have a customized GLogon2.html, you must add this tag inside the form element.
The status span also gained a role="alert" attribute and the class="fade" was removed from the <#STATUS> tag:
Before:
<span style="background-color:#FFE4E1 ;font-size: 110%" tabindex="0"><#STATUS class="fade"></span>
After:
<span role="alert" style="background-color:#FFE4E1 ;font-size: 110%" tabindex="0"><#STATUS></span>
4. HideLoanPeriod Function Fix (Required)​
Files: js/aresajax.js (WebPages and LmsWebPages)
The HideLoanPeriod function was previously defined inside a jQuery $('#PickupLocation').change() handler, meaning it used $(this) to reference the pickup location element. It has been refactored into a standalone function that explicitly references $('#PickupLocation'), and the binding was fixed to pass the function reference instead of invoking it immediately.
Before:
pickupLocation = $(this).val();
$(document).ready(HideLoanPeriod());
$('#PickupLocation').change(HideLoanPeriod());
After:
pickupLocation = $('#PickupLocation').val();
$(document).ready(HideLoanPeriod);
$('#PickupLocation').change(HideLoanPeriod);
Note the removal of the parentheses () after HideLoanPeriod in the .ready() and .change() calls. Previously the function was being invoked immediately rather than passed as a callback, which could cause the loan period to not update correctly when the pickup location changed.
5. Color Contrast Improvements (WCAG 1.4.3) (Recommended)​
Files: css/main.css (WebPages and LmsWebPages), css/rss.css, css/pell.min.css
Multiple color values have been updated to meet WCAG AA contrast ratios (4.5:1 for normal text, 3:1 for large text):
| Element | Before | After | Reason |
|---|---|---|---|
.highlight | #E17000 | #b45600 | Insufficient contrast on white |
.date | #bbb | #767676 | Insufficient contrast on white |
.pagination border | #ddd / #ccc | #949494 | Insufficient contrast for UI elements |
.pagination span color | #ccc | #767676 | Insufficient contrast on white |
.noActionMessage | #999 | #767676 | Insufficient contrast on white |
.table1 tbody th bg | #88b8db | #3a7ca5 | Insufficient contrast for white text |
.calendar td border | #ddd | #949494 | Insufficient contrast |
#nav-secondary li border | #ccc | #949494 | Insufficient contrast |
| Form borders | #d7d7d7 | #a0a0a0 | Insufficient contrast |
RSS title | gray | #595959 | Insufficient contrast |
RSS pubDate | silver | #767676 | Insufficient contrast |
| Links | text-decoration:none | text-decoration:underline | WCAG 1.4.1 - links distinguishable without color |
| Pell editor border | none | 1px solid #767676 | Visible content boundary |
| Pell button border | none | 1px solid #888 | Visible button boundary |
| Pell button selected | #f0f0f0 bg | #d4d4d4 bg + 2px solid #000066 bottom | Clearer active state |
6. Font Size Units Conversion (WCAG 1.4.4) (Recommended)​
Files: css/main.css, css/tagCloud.css (WebPages and LmsWebPages)
Pixel-based font sizes have been converted to rem units to support user font size preferences:
| Selector | Before | After |
|---|---|---|
.nav-link | 14px | 0.875rem |
.caption, small | 11px | 0.6875rem |
.button-style | 10px | 0.625rem |
.tagCloud | 12px | 0.75rem |
.tagCloud1 | 14px | 0.875rem |
.tagCloud2 | 18px | 1.125rem |
.tagCloud3 | 24px | 1.5rem |
.tagCloud-1 | 11px | 0.6875rem |
.tagCloud-2 | 10px | 0.625rem |
.tagCloud-3 | 9px | 0.5625rem |
7. Focus Visibility (WCAG 2.4.7) (Recommended)​
Files: css/main.css (WebPages and LmsWebPages)
New CSS rules ensure visible focus indicators on all interactive elements:
.pell-content:focus {
outline: 2px solid #000066;
}
:focus-visible {
outline: 2px solid #000066;
}
.pell-button:focus-visible {
outline: revert;
}
8. Responsive Layout (WCAG 1.4.10) (Recommended)​
Files: css/main.css (WebPages and LmsWebPages), css/lti.css (LmsWebPages)
New responsive CSS media queries support content reflow at 320px CSS width without horizontal scrolling. Key changes include:
- Removed
min-width:770pxfrom#wrap - Changed fixed
heightvalues tomin-heightfor elements like search input and item icons - Added
@media screen and (max-width: 768px)rules that:- Stack sidebar navigation above content
- Make forms full-width with vertically stacked labels
- Enable
overflow-x:autoon.table-responsivewrapper - Collapse navigation to single-column
- Added
@media screen and (max-width: 480px)rules for tighter mobile spacing
For LmsWebPages, css/lti.css also gained responsive rules for the secondary navigation.
9. Skip Navigation Relocation (LmsWebPages) (Recommended)​
In LmsWebPages, the "Skip to Main Content" link has been moved from include_header.html into each menu include file. This ensures the skip link appears on every page regardless of which menu include is used.
An aria-alert-div (used for screen reader announcements) has been added to each menu include file:
<div id="skip-to-content"><a href="#content" onclick="$('#content').focus(); return false;">Skip to Main Content</a></div>
<div id="aria-alert-div" aria-live="polite" class="offscreen"></div>
In WebPages (standard), the aria-alert-div was added to include_header.html instead.
10. Site Map (WCAG 2.4.5) (Recommended)​
New Files: SiteMap.html and js/buildSiteMap.js (WebPages and LmsWebPages)
A link to the Site Map has been added to include_footer.html:
Before:
<p><a href="#">University Library Home</a> | <a href="#">University Home</a></p>
After:
<p><a href="#">University Library Home</a> | <a href="#">University Home</a> | <a href="<#ACTION action="10" form="3">">Site Map</a></p>
GLogon.html files are static files (not DLL-processed), so the Site Map link in the GLogon footer uses a direct URL (ares.dll?Action=10&Form=3) instead of the <#ACTION> DLL tag.
11. Autocomplete Attributes (WCAG 1.3.5) (Recommended)​
Files: ChangeUserInformation.html, GCreateAccount.html, NewAuthRegistration.html, ForgotPassword.html, GLogon.html, GLogon2.html (WebPages and LmsWebPages)
| Field | autocomplete Value |
|---|---|
| Username (login/forgot password) | off |
| First Name | given-name |
| Last Name | family-name |
| Email Address | email |
| Phone Number | tel |
| Address | address-line1 |
| Address 2 | address-line2 |
| City | address-level2 |
| State | address-level1 |
| Zip Code | postal-code |
12. Item Supply Method Semantic Markup (Recommended)​
Files: IItemSupply.html (WebPages and LmsWebPages)
The item supply method radio buttons have been converted from a nested table layout to semantic <fieldset>/<legend>/<label> markup.
13. Rich Text Editor Accessibility (Recommended)​
Files: js/aresMarkdown.js (WebPages and LmsWebPages)
The InitializeEditor() function now accepts an optional labelText parameter and sets ARIA attributes on the Pell rich text editor content area (role="textbox", aria-multiline="true", aria-label).
14. Table Filter Accessibility (Recommended)​
Files: js/aresTableFilter.js (WebPages and LmsWebPages)
- Empty column headers now receive offscreen labels based on a
data-column-typeattribute - Filter input titles improved from generic "Column filter text" to specific "Search [column name]"
15. Dropdown Menu Improvements (LmsWebPages) (Recommended)​
Files: js/aresMenu.js (LmsWebPages only)
- Close other dropdowns when opening a new one
- Space key handling added
- Focus management improved
Files: include_menu.html (WebPages) — "Ares Tools" changed from link to non-interactive span.
16. Additional Fixes (Recommended)​
- UCoursePassword.html: Page title corrected from "Create Course" to "Course Password"; added label for password input
- ICourseCreate.html, ICourseClone.html: Heading levels corrected (h3->h2, h4->h3)
- USearch.html: Layout table caption removed,
role="presentation"added - GLogon.html, GLogon2.html, GSearchResults.html: Removed empty
onclick=""attributes - NewAuthRegistration.html: Fixed tag nesting; corrected fieldset legend text
- UCourseMessageBoardNewThread.html: Fixed body tag; added editor label parameter
- Copyright years updated from 2024 to 2026 across JavaScript files and GLogon.html