Ally Financial — Score 927 | Sonde

Sonde

Accessibility Health Check

https://ally.com

Excellent

April 28, 2026

Provided free by Sonde

3pages83findings8critical12high60medium3low27.7avg/page1,830elements54with findings97%ECR3m 33stotal1m 11sper page

Excellent

Executive Summary

3pages83findings27.7avg/page1,830elements54with findings97%ECR3m 33stotal1m 11sper page

Top Findings

Copy a direct link to share a finding Open a discussion to give feedback on a finding

criticalInsufficient color contrast: 1.00:1 (required: 4.5:1 for normal text). Foreground: rgb(255, 255, 255), background: rgb(255, 255, 255). Text: "Ally Bank"WCAG 1.4.3
Element:
<p data-testid="RichTextTestId_block_p" class="Text_body-md__aYHxV -mt-0 -mb-xxs -color-gray-white">Ally Bank </p>
Sonde Fix Plan

Current ratio: 1.00:1 (need 4.5:1). Change foreground from #ffffff to #777676 (ratio: 4.5:1).

criticalInsufficient color contrast: 1.00:1 (required: 4.5:1 for normal text). Foreground: rgb(255, 255, 255), background: rgb(255, 255, 255). Text: "Spending"WCAG 1.4.3
Element:
<a class="Link_link__JHJ4m Link_-dark__6RmSy Link_-no-inline__7AGiC Link_-embedded-block___x1B8" data-allytmln="explore-Checking" href="https://www.ally.com/bank/interest-checking-account/" target="_s
Sonde Fix Plan

Current ratio: 1.00:1 (need 4.5:1). Change foreground from #ffffff to #777676 (ratio: 4.5:1).

criticalInsufficient color contrast: 1.00:1 (required: 3:1 for large text). Foreground: rgb(255, 255, 255), background: rgb(255, 255, 255). Text: "You’ve got an ally in every corner."WCAG 1.4.3
Element:
<strong data-testid="RichTextTestId_mark_bold">You’ve got an ally in every corner.</strong>
Sonde Fix Plan

Current ratio: 1.00:1 (need 3:1). Change foreground from #ffffff to #959494 (ratio: 3.0:1).

criticalInsufficient color contrast: 1.00:1 (required: 4.5:1 for normal text). Foreground: rgb(255, 255, 255), background: rgb(255, 255, 255). Text: "Bank product Icon"WCAG 1.4.3
Element:
<title>Bank product Icon</title>
Sonde Fix Plan

Current ratio: 1.00:1 (need 4.5:1). Change foreground from #ffffff to #777676 (ratio: 4.5:1).

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

high"role=text" should have no focusable descendants: Fix any of the following: Element has focusable descendants
Page: /
Element:
<p class="userConsent__disclaimerText" role="text">
Sonde Fix Plan

Ensure role="text" is used on elements with no focusable descendants. See: https://www.w3.org/WAI/WCAG22/quickref/

highConsole warning: 🚀 _satellite.notify is deprecated. Please use the `_satellite.logger` API.
Page: /
Source: https://www.ally.com/_next/static/chunks/5230-99413ba528bff774.js:0medium
Sonde Fix Plan

Add X-Content-Type-Options: nosniff Add Referrer-Policy: strict-origin-when-cross-origin or no-referrer Add Strict-Transport-Security header with max-age of at least 31536000 Add X-Frame-Options: DENY or SAMEORIGIN Add a Content-Security-Policy header with appropriate directives

highFocus jumps backward from "Decline Cookies" to "Skip to login" (visual distance: 845px). No explicit tabIndex — likely a DOM order issue.WCAG 2.4.3
Element:
<button>Skip to login</button>
Sonde Fix Plan

Reorder elements in the DOM to match the visual layout.

highFocus jumps backward from "Skip to main content" to "Ally Logo, go to ally.com" (visual distance: 451px). No explicit tabIndex — likely a DOM order issue.WCAG 2.4.3
Element:
<a>Ally Logo, go to ally.com</a>
Sonde Fix Plan

Reorder elements in the DOM to match the visual layout.

highFocus jumps backward from "Skip to main content" to "Ally ventures logo" (visual distance: 445px). No explicit tabIndex — likely a DOM order issue.WCAG 2.4.3
Element:
<a>Ally ventures logo</a>
Sonde Fix Plan

Reorder elements in the DOM to match the visual layout.

mediumFocusable element has generic role. Keyboard users can reach it but screen readers provide no context about its purpose.WCAG 4.1.2
Element:
<!-- a11y: role="generic" -->
Sonde Fix Plan

Add an explicit ARIA role (e.g., role="button") and an accessible name. WCAG 4.1.2 requires interactive elements to expose their role.

mediumFocusable element has generic role. Keyboard users can reach it but screen readers provide no context about its purpose.WCAG 4.1.2
Element:
<!-- a11y: role="generic" -->
Sonde Fix Plan

Add an explicit ARIA role (e.g., role="button") and an accessible name. WCAG 4.1.2 requires interactive elements to expose their role.

mediumFocusable element has generic role. Keyboard users can reach it but screen readers provide no context about its purpose.WCAG 4.1.2
Element:
<!-- a11y: role="generic" -->
Sonde Fix Plan

Add an explicit ARIA role (e.g., role="button") and an accessible name. WCAG 4.1.2 requires interactive elements to expose their role.

mediumFocusable element has generic role. Keyboard users can reach it but screen readers provide no context about its purpose.WCAG 4.1.2
Element:
<!-- a11y: role="generic" -->
Sonde Fix Plan

Add an explicit ARIA role (e.g., role="button") and an accessible name. WCAG 4.1.2 requires interactive elements to expose their role.

mediumFocusable element has generic role. Keyboard users can reach it but screen readers provide no context about its purpose.WCAG 4.1.2
Element:
<!-- a11y: role="generic" -->
Sonde Fix Plan

Add an explicit ARIA role (e.g., role="button") and an accessible name. WCAG 4.1.2 requires interactive elements to expose their role.

mediumFocusable element has generic role. Keyboard users can reach it but screen readers provide no context about its purpose.WCAG 4.1.2
Element:
<!-- a11y: role="generic" -->
Sonde Fix Plan

Add an explicit ARIA role (e.g., role="button") and an accessible name. WCAG 4.1.2 requires interactive elements to expose their role.

mediumFocusable element has generic role. Keyboard users can reach it but screen readers provide no context about its purpose.WCAG 4.1.2
Element:
<!-- a11y: role="generic" -->
Sonde Fix Plan

Add an explicit ARIA role (e.g., role="button") and an accessible name. WCAG 4.1.2 requires interactive elements to expose their role.

mediumFocusable element has generic role. Keyboard users can reach it but screen readers provide no context about its purpose.WCAG 4.1.2
Element:
<!-- a11y: role="generic" -->
Sonde Fix Plan

Add an explicit ARIA role (e.g., role="button") and an accessible name. WCAG 4.1.2 requires interactive elements to expose their role.

mediumFocusable element has generic role. Keyboard users can reach it but screen readers provide no context about its purpose.WCAG 4.1.2
Element:
<!-- a11y: role="generic" -->
Sonde Fix Plan

Add an explicit ARIA role (e.g., role="button") and an accessible name. WCAG 4.1.2 requires interactive elements to expose their role.

mediumFocusable element has generic role. Keyboard users can reach it but screen readers provide no context about its purpose.WCAG 4.1.2
Element:
<!-- a11y: role="generic" -->
Sonde Fix Plan

Add an explicit ARIA role (e.g., role="button") and an accessible name. WCAG 4.1.2 requires interactive elements to expose their role.

mediumPage has 3 "navigation" landmarks but only 2 have distinct labels. Screen reader users cannot distinguish between them.WCAG 1.3.1
Element:
<!-- 3 navigation landmarks, 2 labeled -->
Sonde Fix Plan

Add unique aria-label or aria-labelledby to each "navigation" landmark so screen readers can differentiate them. Example: <nav aria-label="Primary">, <nav aria-label="Footer">.

mediumLink is distinguished from surrounding text only by color (link: rgb(26, 26, 26), text: rgb(255, 255, 255)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a class="Link_link__JHJ4m Link_navLinkTop__7USdO Link_-no-inline__7AGiC" data-allytmln="helpTopNav" href="https://www.ally.com/help/" target="_self" allytm-click-tagged="true">Help</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(26, 26, 26), text: rgb(255, 255, 255)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a class="Link_link__JHJ4m Link_navLinkTop__7USdO Link_-no-inline__7AGiC" href="http://www.ally.com/search" target="_self" allytm-click-tagged="true">Search</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(26, 26, 26), text: rgb(255, 255, 255)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a class="Link_navLink__ZbrPx Link_-no-inline__7AGiC" data-allytmln="footer-investorRelations" href="https://www.ally.com/about/investor/" target="_self" allytm-click-tagged="true">Investor Relations<
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(26, 26, 26), text: rgb(255, 255, 255)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a class="Link_navLink__ZbrPx Link_-no-inline__7AGiC" data-allytmln="footer-ourCompany" href="https://www.ally.com/about/company-structure/" target="_self" allytm-click-tagged="true">Our Company</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(26, 26, 26), text: rgb(255, 255, 255)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a class="Link_navLink__ZbrPx Link_-no-inline__7AGiC" data-allytmln="footer-careers" href="https://www.ally.com/about/careers/" target="_self" allytm-click-tagged="true">Careers</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(26, 26, 26), text: rgb(255, 255, 255)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a class="Link_link__JHJ4m Link_navLinkTop__7USdO Link_-no-inline__7AGiC" data-allytmln="aboutUsTopNav" href="https://www.ally.com/about/" target="_self" allytm-click-tagged="true">About Us</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(26, 26, 26), text: rgb(255, 255, 255)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a class="Link_navLink__ZbrPx Link_-no-inline__7AGiC" data-allytmln="footer-socialImpact" href="https://www.ally.com/about/social-impact/" target="_self" allytm-click-tagged="true">Social Impact</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(26, 26, 26), text: rgb(255, 255, 255)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a class="Link_navLink__ZbrPx Link_-no-inline__7AGiC" data-allytmln="footer-suppliers" href="https://www.ally.com/about/suppliers/" target="_self" allytm-click-tagged="true">Suppliers</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(26, 26, 26), text: rgb(255, 255, 255)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a class="Link_navLink__ZbrPx Link_-no-inline__7AGiC" data-allytmln="footer-mediaCenter" href="https://media.ally.com/" target="_self" allytm-click-tagged="true">Media Center</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(26, 26, 26), text: rgb(255, 255, 255)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a class="Link_link__JHJ4m Link_navLinkTop__7USdO Link_-no-inline__7AGiC" data-allytmln="contactUsTopNav" href="https://www.ally.com/contact-us/" target="_self" allytm-click-tagged="true">Contact Us</
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(26, 26, 26), text: rgb(255, 255, 255)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a class="Link_navLink__ZbrPx Link_-no-inline__7AGiC" data-allytmln="footer-investorRelations" href="https://www.ally.com/about/investor/" target="_self" allytm-click-tagged="true">Investor Relations<
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(26, 26, 26), text: rgb(255, 255, 255)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a class="Link_navLink__ZbrPx Link_-no-inline__7AGiC" data-allytmln="footer-socialImpact" href="https://www.ally.com/about/social-impact/" target="_self" allytm-click-tagged="true">Social Impact</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(26, 26, 26), text: rgb(255, 255, 255)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a class="Link_navLink__ZbrPx Link_-no-inline__7AGiC" data-allytmln="footer-dealerServices" href="https://www.ally.com/dealer/" target="_self" allytm-click-tagged="true">Dealer Services</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(26, 26, 26), text: rgb(255, 255, 255)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a class="Link_navLink__ZbrPx Link_-no-inline__7AGiC" data-allytmln="footer-allyVentures" href="https://www.ally.com/ventures/" target="_self" allytm-click-tagged="true">Ally Ventures</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(26, 26, 26), text: rgb(255, 255, 255)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a class="Link_navLink__ZbrPx Link_-no-inline__7AGiC" data-allytmln="footer-corporateFinance" href="https://www.ally.com/corporate-finance/" target="_self" allytm-click-tagged="true">Corporate Finance
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(26, 26, 26), text: rgb(255, 255, 255)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a class="Link_navLink__ZbrPx Link_-no-inline__7AGiC" data-allytmln="footer-careers" href="https://www.ally.com/about/careers/" target="_self" allytm-click-tagged="true">Careers</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(26, 26, 26), text: rgb(255, 255, 255)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a class="Link_navLink__ZbrPx Link_-no-inline__7AGiC" data-allytmln="footer-ourCompany" href="https://www.ally.com/about/company-structure/" target="_self" allytm-click-tagged="true">Our Company</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(26, 26, 26), text: rgb(255, 255, 255)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a class="Link_navLink__ZbrPx Link_-no-inline__7AGiC" data-allytmln="footer-mediaCenter" href="https://media.ally.com/" target="_self" allytm-click-tagged="true">Media Center</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(26, 26, 26), text: rgb(255, 255, 255)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a class="Link_navLink__ZbrPx Link_-no-inline__7AGiC" data-allytmln="footer-suppliers" href="https://www.ally.com/about/suppliers/" target="_self" allytm-click-tagged="true">Suppliers</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(26, 26, 26), text: rgb(255, 255, 255)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a class="Link_navLink__ZbrPx Link_-no-inline__7AGiC" data-allytmln="footer-conversationally" href="https://www.ally.com/stories/" target="_self" allytm-click-tagged="true">Conversationally</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumNavigation region "Top Menu" (present on www.ally.com) is missing on this page. Navigation should appear consistently across pages.WCAG 3.2.3
Element:
<!-- missing: nav[aria-label="Top Menu"] -->
Sonde Fix Plan

Ensure the "Top Menu" navigation region appears on all pages in the site. Consistent navigation helps users predict where to find content.

mediumClicking "SIPC" inserts 7 element(s) without ARIA live region. Screen readers will not announce this dynamic content.WCAG 4.1.3
Element:
<a class="Link_link__JHJ4m Modal_dialogTrigger__6C7WP styles_interstitialTrigger__s2UXm styles_-underline__agAoU styles_-inline__545GH Link_-underline__lnWRl Link_-inline__GtMVe" data-allytmln="defaul
Sonde Fix Plan

Wrap dynamically inserted content in an element with aria-live="polite" (or role="status"/"alert") so assistive technologies announce the change.

mediumClicking "Investing & Retirement" inserts 6 element(s) without ARIA live region. Screen readers will not announce this dynamic content.WCAG 4.1.3
Element:
<button class="styles_mainNavListItemBtn__EFhR4" type="button" aria-expanded="false" aria-label="Open Investing &amp; Retirement Menu" data-allytmln="investMenu" allytm-click-tagged="true">Investing &
Sonde Fix Plan

Wrap dynamically inserted content in an element with aria-live="polite" (or role="status"/"alert") so assistive technologies announce the change.

mediumClicking "Auto" inserts 4 element(s) without ARIA live region. Screen readers will not announce this dynamic content.WCAG 4.1.3
Element:
<button class="styles_mainNavListItemBtn__EFhR4" type="button" aria-expanded="false" aria-label="Open Auto Menu" data-allytmln="autoMenu" allytm-click-tagged="true">Auto</button>
Sonde Fix Plan

Wrap dynamically inserted content in an element with aria-live="polite" (or role="status"/"alert") so assistive technologies announce the change.

mediumClicking "Accept" inserts 15 element(s) without ARIA live region. Screen readers will not announce this dynamic content.WCAG 4.1.3
Element:
<button class="userConsent__btn" allytmln="Banner - Accept" allytm-click-tagged="true" aria-label="Accept Cookies">Accept</button>
Sonde Fix Plan

Wrap dynamically inserted content in an element with aria-live="polite" (or role="status"/"alert") so assistive technologies announce the change.

mediumClicking "Auto" inserts 4 element(s) without ARIA live region. Screen readers will not announce this dynamic content.WCAG 4.1.3
Element:
<button class="styles_mainNavListItemBtn__EFhR4" type="button" aria-expanded="false" aria-label="Open Auto Menu" data-allytmln="autoMenu" allytm-click-tagged="true">Auto</button>
Sonde Fix Plan

Wrap dynamically inserted content in an element with aria-live="polite" (or role="status"/"alert") so assistive technologies announce the change.

mediumClicking "SIPC" inserts 7 element(s) without ARIA live region. Screen readers will not announce this dynamic content.WCAG 4.1.3
Element:
<a class="Link_link__JHJ4m Modal_dialogTrigger__6C7WP styles_interstitialTrigger__s2UXm styles_-underline__agAoU styles_-inline__545GH Link_-underline__lnWRl Link_-inline__GtMVe" data-allytmln="defaul
Sonde Fix Plan

Wrap dynamically inserted content in an element with aria-live="polite" (or role="status"/"alert") so assistive technologies announce the change.

mediumClicking "Investing & Retirement" inserts 6 element(s) without ARIA live region. Screen readers will not announce this dynamic content.WCAG 4.1.3
Element:
<button class="styles_mainNavListItemBtn__EFhR4" type="button" aria-expanded="false" aria-label="Open Investing &amp; Retirement Menu" data-allytmln="investMenu" allytm-click-tagged="true">Investing &
Sonde Fix Plan

Wrap dynamically inserted content in an element with aria-live="polite" (or role="status"/"alert") so assistive technologies announce the change.

mediumClicking "Visit Modelshop" inserts 8 element(s) without ARIA live region. Screen readers will not announce this dynamic content.WCAG 4.1.3
Element:
<a class="Link_link__JHJ4m Modal_dialogTrigger__6C7WP styles_interstitialTrigger__s2UXm Link_-no-inline__7AGiC Link_-embedded-block___x1B8" data-allytmln="venturesExternalLinkInterstitial" href="##" t
Sonde Fix Plan

Wrap dynamically inserted content in an element with aria-live="polite" (or role="status"/"alert") so assistive technologies announce the change.

mediumClicking "SIPC" inserts 7 element(s) without ARIA live region. Screen readers will not announce this dynamic content.WCAG 4.1.3
Element:
<a class="Link_link__JHJ4m Modal_dialogTrigger__6C7WP styles_interstitialTrigger__s2UXm styles_-underline__agAoU styles_-inline__545GH Link_-underline__lnWRl Link_-inline__GtMVe" data-allytmln="defaul
Sonde Fix Plan

Wrap dynamically inserted content in an element with aria-live="polite" (or role="status"/"alert") so assistive technologies announce the change.

mediumClicking "Learn More" inserts 7 element(s) without ARIA live region. Screen readers will not announce this dynamic content.WCAG 4.1.3
Element:
<a class="Modal_dialogTrigger__6C7WP Link_ctaTertiary__Ai4Hu Link_-dark__6RmSy Link_buttonAsLink__4_bbF" data-allytmln="learnMoreRobKerr" aria-label="learn more rob kerr" role="button" href="##" allyt
Sonde Fix Plan

Wrap dynamically inserted content in an element with aria-live="polite" (or role="status"/"alert") so assistive technologies announce the change.

mediumClicking "Visit Car IQ" inserts 7 element(s) without ARIA live region. Screen readers will not announce this dynamic content.WCAG 4.1.3
Element:
<a class="Link_link__JHJ4m Modal_dialogTrigger__6C7WP styles_interstitialTrigger__s2UXm Link_-no-inline__7AGiC Link_-embedded-block___x1B8" data-allytmln="venturesExternalLinkInterstitial" href="##" t
Sonde Fix Plan

Wrap dynamically inserted content in an element with aria-live="polite" (or role="status"/"alert") so assistive technologies announce the change.

mediumClicking "Visit Greenlight" inserts 8 element(s) without ARIA live region. Screen readers will not announce this dynamic content.WCAG 4.1.3
Element:
<a class="Link_link__JHJ4m Modal_dialogTrigger__6C7WP styles_interstitialTrigger__s2UXm Link_-no-inline__7AGiC Link_-embedded-block___x1B8" data-allytmln="venturesExternalLinkInterstitial" href="##" t
Sonde Fix Plan

Wrap dynamically inserted content in an element with aria-live="polite" (or role="status"/"alert") so assistive technologies announce the change.

mediumx-content-type-options header has invalid or weak value: nosniff nosniff
Page: /ventures
Sonde Fix Plan

Add X-Content-Type-Options: nosniff Add Referrer-Policy: strict-origin-when-cross-origin or no-referrer

lowBroken link: https://www.tiktok.com/@allydoitright returned status 403 Forbidden after 1 attempts
Page: /
Element:
<a href="https://www.tiktok.com/@allydoitright">TikTok Logo</a>
lowBroken link: https://www.tiktok.com/@allydoitright returned status 403 Forbidden after 1 attempts
Page: /ventures
Element:
<a href="https://www.tiktok.com/@allydoitright">TikTok Logo</a>

Best Page Fix Opportunities

www.ally.com33findings
criticalInsufficient color contrast: 1.00:1 (required: 4.5:1 for normal text). Foreground: rgb(255, 255, 255), background: rgb(255, 255, 255). Text: "Ally Bank"WCAG 1.4.3
Element:
<p data-testid="RichTextTestId_block_p" class="Text_body-md__aYHxV -mt-0 -mb-xxs -color-gray-white">Ally Bank </p>
Sonde Fix Plan

Current ratio: 1.00:1 (need 4.5:1). Change foreground from #ffffff to #777676 (ratio: 4.5:1).

criticalInsufficient color contrast: 1.00:1 (required: 4.5:1 for normal text). Foreground: rgb(255, 255, 255), background: rgb(255, 255, 255). Text: "Spending"WCAG 1.4.3
Element:
<a class="Link_link__JHJ4m Link_-dark__6RmSy Link_-no-inline__7AGiC Link_-embedded-block___x1B8" data-allytmln="explore-Checking" href="https://www.ally.com/bank/interest-checking-account/" target="_s
Sonde Fix Plan

Current ratio: 1.00:1 (need 4.5:1). Change foreground from #ffffff to #777676 (ratio: 4.5:1).

criticalInsufficient color contrast: 1.00:1 (required: 3:1 for large text). Foreground: rgb(255, 255, 255), background: rgb(255, 255, 255). Text: "You’ve got an ally in every corner."WCAG 1.4.3
Element:
<strong data-testid="RichTextTestId_mark_bold">You’ve got an ally in every corner.</strong>
Sonde Fix Plan

Current ratio: 1.00:1 (need 3:1). Change foreground from #ffffff to #959494 (ratio: 3.0:1).

criticalInsufficient color contrast: 1.00:1 (required: 4.5:1 for normal text). Foreground: rgb(255, 255, 255), background: rgb(255, 255, 255). Text: "Bank product Icon"WCAG 1.4.3
Element:
<title>Bank product Icon</title>
Sonde Fix Plan

Current ratio: 1.00:1 (need 4.5:1). Change foreground from #ffffff to #777676 (ratio: 4.5:1).

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

high"role=text" should have no focusable descendants: Fix any of the following: Element has focusable descendants
Page: /
Element:
<p class="userConsent__disclaimerText" role="text">
Sonde Fix Plan

Ensure role="text" is used on elements with no focusable descendants. See: https://www.w3.org/WAI/WCAG22/quickref/

highConsole warning: 🚀 _satellite.notify is deprecated. Please use the `_satellite.logger` API.
Page: /
Source: https://www.ally.com/_next/static/chunks/5230-99413ba528bff774.js:0medium
Sonde Fix Plan

Add X-Content-Type-Options: nosniff Add Referrer-Policy: strict-origin-when-cross-origin or no-referrer Add Strict-Transport-Security header with max-age of at least 31536000 Add X-Frame-Options: DENY or SAMEORIGIN Add a Content-Security-Policy header with appropriate directives

highFocus jumps backward from "Decline Cookies" to "Skip to login" (visual distance: 845px). No explicit tabIndex — likely a DOM order issue.WCAG 2.4.3
Element:
<button>Skip to login</button>
Sonde Fix Plan

Reorder elements in the DOM to match the visual layout.

highFocus jumps backward from "Skip to main content" to "Ally Logo, go to ally.com" (visual distance: 451px). No explicit tabIndex — likely a DOM order issue.WCAG 2.4.3
Element:
<a>Ally Logo, go to ally.com</a>
Sonde Fix Plan

Reorder elements in the DOM to match the visual layout.

mediumFocusable element has generic role. Keyboard users can reach it but screen readers provide no context about its purpose.WCAG 4.1.2
Element:
<!-- a11y: role="generic" -->
Sonde Fix Plan

Add an explicit ARIA role (e.g., role="button") and an accessible name. WCAG 4.1.2 requires interactive elements to expose their role.

mediumFocusable element has generic role. Keyboard users can reach it but screen readers provide no context about its purpose.WCAG 4.1.2
Element:
<!-- a11y: role="generic" -->
Sonde Fix Plan

Add an explicit ARIA role (e.g., role="button") and an accessible name. WCAG 4.1.2 requires interactive elements to expose their role.

mediumFocusable element has generic role. Keyboard users can reach it but screen readers provide no context about its purpose.WCAG 4.1.2
Element:
<!-- a11y: role="generic" -->
Sonde Fix Plan

Add an explicit ARIA role (e.g., role="button") and an accessible name. WCAG 4.1.2 requires interactive elements to expose their role.

mediumFocusable element has generic role. Keyboard users can reach it but screen readers provide no context about its purpose.WCAG 4.1.2
Element:
<!-- a11y: role="generic" -->
Sonde Fix Plan

Add an explicit ARIA role (e.g., role="button") and an accessible name. WCAG 4.1.2 requires interactive elements to expose their role.

mediumFocusable element has generic role. Keyboard users can reach it but screen readers provide no context about its purpose.WCAG 4.1.2
Element:
<!-- a11y: role="generic" -->
Sonde Fix Plan

Add an explicit ARIA role (e.g., role="button") and an accessible name. WCAG 4.1.2 requires interactive elements to expose their role.

mediumLink is distinguished from surrounding text only by color (link: rgb(26, 26, 26), text: rgb(255, 255, 255)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a class="Link_link__JHJ4m Link_navLinkTop__7USdO Link_-no-inline__7AGiC" data-allytmln="helpTopNav" href="https://www.ally.com/help/" target="_self" allytm-click-tagged="true">Help</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(26, 26, 26), text: rgb(255, 255, 255)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a class="Link_link__JHJ4m Link_navLinkTop__7USdO Link_-no-inline__7AGiC" href="http://www.ally.com/search" target="_self" allytm-click-tagged="true">Search</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(26, 26, 26), text: rgb(255, 255, 255)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a class="Link_navLink__ZbrPx Link_-no-inline__7AGiC" data-allytmln="footer-investorRelations" href="https://www.ally.com/about/investor/" target="_self" allytm-click-tagged="true">Investor Relations<
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(26, 26, 26), text: rgb(255, 255, 255)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a class="Link_navLink__ZbrPx Link_-no-inline__7AGiC" data-allytmln="footer-ourCompany" href="https://www.ally.com/about/company-structure/" target="_self" allytm-click-tagged="true">Our Company</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(26, 26, 26), text: rgb(255, 255, 255)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a class="Link_navLink__ZbrPx Link_-no-inline__7AGiC" data-allytmln="footer-careers" href="https://www.ally.com/about/careers/" target="_self" allytm-click-tagged="true">Careers</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(26, 26, 26), text: rgb(255, 255, 255)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a class="Link_link__JHJ4m Link_navLinkTop__7USdO Link_-no-inline__7AGiC" data-allytmln="aboutUsTopNav" href="https://www.ally.com/about/" target="_self" allytm-click-tagged="true">About Us</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(26, 26, 26), text: rgb(255, 255, 255)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a class="Link_navLink__ZbrPx Link_-no-inline__7AGiC" data-allytmln="footer-socialImpact" href="https://www.ally.com/about/social-impact/" target="_self" allytm-click-tagged="true">Social Impact</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(26, 26, 26), text: rgb(255, 255, 255)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a class="Link_navLink__ZbrPx Link_-no-inline__7AGiC" data-allytmln="footer-suppliers" href="https://www.ally.com/about/suppliers/" target="_self" allytm-click-tagged="true">Suppliers</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(26, 26, 26), text: rgb(255, 255, 255)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a class="Link_navLink__ZbrPx Link_-no-inline__7AGiC" data-allytmln="footer-mediaCenter" href="https://media.ally.com/" target="_self" allytm-click-tagged="true">Media Center</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(26, 26, 26), text: rgb(255, 255, 255)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a class="Link_link__JHJ4m Link_navLinkTop__7USdO Link_-no-inline__7AGiC" data-allytmln="contactUsTopNav" href="https://www.ally.com/contact-us/" target="_self" allytm-click-tagged="true">Contact Us</
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumClicking "SIPC" inserts 7 element(s) without ARIA live region. Screen readers will not announce this dynamic content.WCAG 4.1.3
Element:
<a class="Link_link__JHJ4m Modal_dialogTrigger__6C7WP styles_interstitialTrigger__s2UXm styles_-underline__agAoU styles_-inline__545GH Link_-underline__lnWRl Link_-inline__GtMVe" data-allytmln="defaul
Sonde Fix Plan

Wrap dynamically inserted content in an element with aria-live="polite" (or role="status"/"alert") so assistive technologies announce the change.

mediumClicking "Investing & Retirement" inserts 6 element(s) without ARIA live region. Screen readers will not announce this dynamic content.WCAG 4.1.3
Element:
<button class="styles_mainNavListItemBtn__EFhR4" type="button" aria-expanded="false" aria-label="Open Investing &amp; Retirement Menu" data-allytmln="investMenu" allytm-click-tagged="true">Investing &
Sonde Fix Plan

Wrap dynamically inserted content in an element with aria-live="polite" (or role="status"/"alert") so assistive technologies announce the change.

mediumClicking "Auto" inserts 4 element(s) without ARIA live region. Screen readers will not announce this dynamic content.WCAG 4.1.3
Element:
<button class="styles_mainNavListItemBtn__EFhR4" type="button" aria-expanded="false" aria-label="Open Auto Menu" data-allytmln="autoMenu" allytm-click-tagged="true">Auto</button>
Sonde Fix Plan

Wrap dynamically inserted content in an element with aria-live="polite" (or role="status"/"alert") so assistive technologies announce the change.

mediumClicking "Accept" inserts 15 element(s) without ARIA live region. Screen readers will not announce this dynamic content.WCAG 4.1.3
Element:
<button class="userConsent__btn" allytmln="Banner - Accept" allytm-click-tagged="true" aria-label="Accept Cookies">Accept</button>
Sonde Fix Plan

Wrap dynamically inserted content in an element with aria-live="polite" (or role="status"/"alert") so assistive technologies announce the change.

mediumClicking "Auto" inserts 4 element(s) without ARIA live region. Screen readers will not announce this dynamic content.WCAG 4.1.3
Element:
<button class="styles_mainNavListItemBtn__EFhR4" type="button" aria-expanded="false" aria-label="Open Auto Menu" data-allytmln="autoMenu" allytm-click-tagged="true">Auto</button>
Sonde Fix Plan

Wrap dynamically inserted content in an element with aria-live="polite" (or role="status"/"alert") so assistive technologies announce the change.

mediumClicking "SIPC" inserts 7 element(s) without ARIA live region. Screen readers will not announce this dynamic content.WCAG 4.1.3
Element:
<a class="Link_link__JHJ4m Modal_dialogTrigger__6C7WP styles_interstitialTrigger__s2UXm styles_-underline__agAoU styles_-inline__545GH Link_-underline__lnWRl Link_-inline__GtMVe" data-allytmln="defaul
Sonde Fix Plan

Wrap dynamically inserted content in an element with aria-live="polite" (or role="status"/"alert") so assistive technologies announce the change.

mediumClicking "Investing & Retirement" inserts 6 element(s) without ARIA live region. Screen readers will not announce this dynamic content.WCAG 4.1.3
Element:
<button class="styles_mainNavListItemBtn__EFhR4" type="button" aria-expanded="false" aria-label="Open Investing &amp; Retirement Menu" data-allytmln="investMenu" allytm-click-tagged="true">Investing &
Sonde Fix Plan

Wrap dynamically inserted content in an element with aria-live="polite" (or role="status"/"alert") so assistive technologies announce the change.

lowBroken link: https://www.tiktok.com/@allydoitright returned status 403 Forbidden after 1 attempts
Page: /
Element:
<a href="https://www.tiktok.com/@allydoitright">TikTok Logo</a>
/ventures27findings
highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highImage has no accessible name in the accessibility tree. Screen readers will skip or announce it generically.WCAG 1.1.1
Element:
<!-- a11y: role="image" -->
Sonde Fix Plan

Add alt text to the image. If decorative, mark with role="presentation" or alt="". WCAG 1.1.1 requires text alternatives for non-text content.

highFocus jumps backward from "Skip to main content" to "Ally ventures logo" (visual distance: 445px). No explicit tabIndex — likely a DOM order issue.WCAG 2.4.3
Element:
<a>Ally ventures logo</a>
Sonde Fix Plan

Reorder elements in the DOM to match the visual layout.

mediumFocusable element has generic role. Keyboard users can reach it but screen readers provide no context about its purpose.WCAG 4.1.2
Element:
<!-- a11y: role="generic" -->
Sonde Fix Plan

Add an explicit ARIA role (e.g., role="button") and an accessible name. WCAG 4.1.2 requires interactive elements to expose their role.

mediumFocusable element has generic role. Keyboard users can reach it but screen readers provide no context about its purpose.WCAG 4.1.2
Element:
<!-- a11y: role="generic" -->
Sonde Fix Plan

Add an explicit ARIA role (e.g., role="button") and an accessible name. WCAG 4.1.2 requires interactive elements to expose their role.

mediumFocusable element has generic role. Keyboard users can reach it but screen readers provide no context about its purpose.WCAG 4.1.2
Element:
<!-- a11y: role="generic" -->
Sonde Fix Plan

Add an explicit ARIA role (e.g., role="button") and an accessible name. WCAG 4.1.2 requires interactive elements to expose their role.

mediumFocusable element has generic role. Keyboard users can reach it but screen readers provide no context about its purpose.WCAG 4.1.2
Element:
<!-- a11y: role="generic" -->
Sonde Fix Plan

Add an explicit ARIA role (e.g., role="button") and an accessible name. WCAG 4.1.2 requires interactive elements to expose their role.

mediumFocusable element has generic role. Keyboard users can reach it but screen readers provide no context about its purpose.WCAG 4.1.2
Element:
<!-- a11y: role="generic" -->
Sonde Fix Plan

Add an explicit ARIA role (e.g., role="button") and an accessible name. WCAG 4.1.2 requires interactive elements to expose their role.

mediumPage has 3 "navigation" landmarks but only 2 have distinct labels. Screen reader users cannot distinguish between them.WCAG 1.3.1
Element:
<!-- 3 navigation landmarks, 2 labeled -->
Sonde Fix Plan

Add unique aria-label or aria-labelledby to each "navigation" landmark so screen readers can differentiate them. Example: <nav aria-label="Primary">, <nav aria-label="Footer">.

mediumLink is distinguished from surrounding text only by color (link: rgb(26, 26, 26), text: rgb(255, 255, 255)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a class="Link_navLink__ZbrPx Link_-no-inline__7AGiC" data-allytmln="footer-investorRelations" href="https://www.ally.com/about/investor/" target="_self" allytm-click-tagged="true">Investor Relations<
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(26, 26, 26), text: rgb(255, 255, 255)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a class="Link_navLink__ZbrPx Link_-no-inline__7AGiC" data-allytmln="footer-socialImpact" href="https://www.ally.com/about/social-impact/" target="_self" allytm-click-tagged="true">Social Impact</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(26, 26, 26), text: rgb(255, 255, 255)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a class="Link_navLink__ZbrPx Link_-no-inline__7AGiC" data-allytmln="footer-dealerServices" href="https://www.ally.com/dealer/" target="_self" allytm-click-tagged="true">Dealer Services</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(26, 26, 26), text: rgb(255, 255, 255)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a class="Link_navLink__ZbrPx Link_-no-inline__7AGiC" data-allytmln="footer-allyVentures" href="https://www.ally.com/ventures/" target="_self" allytm-click-tagged="true">Ally Ventures</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(26, 26, 26), text: rgb(255, 255, 255)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a class="Link_navLink__ZbrPx Link_-no-inline__7AGiC" data-allytmln="footer-corporateFinance" href="https://www.ally.com/corporate-finance/" target="_self" allytm-click-tagged="true">Corporate Finance
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(26, 26, 26), text: rgb(255, 255, 255)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a class="Link_navLink__ZbrPx Link_-no-inline__7AGiC" data-allytmln="footer-careers" href="https://www.ally.com/about/careers/" target="_self" allytm-click-tagged="true">Careers</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(26, 26, 26), text: rgb(255, 255, 255)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a class="Link_navLink__ZbrPx Link_-no-inline__7AGiC" data-allytmln="footer-ourCompany" href="https://www.ally.com/about/company-structure/" target="_self" allytm-click-tagged="true">Our Company</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(26, 26, 26), text: rgb(255, 255, 255)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a class="Link_navLink__ZbrPx Link_-no-inline__7AGiC" data-allytmln="footer-mediaCenter" href="https://media.ally.com/" target="_self" allytm-click-tagged="true">Media Center</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(26, 26, 26), text: rgb(255, 255, 255)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a class="Link_navLink__ZbrPx Link_-no-inline__7AGiC" data-allytmln="footer-suppliers" href="https://www.ally.com/about/suppliers/" target="_self" allytm-click-tagged="true">Suppliers</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumLink is distinguished from surrounding text only by color (link: rgb(26, 26, 26), text: rgb(255, 255, 255)). Users who cannot perceive color differences may not identify this as a link.WCAG 1.4.1
Element:
<a class="Link_navLink__ZbrPx Link_-no-inline__7AGiC" data-allytmln="footer-conversationally" href="https://www.ally.com/stories/" target="_self" allytm-click-tagged="true">Conversationally</a>
Sonde Fix Plan

Add a non-color visual indicator to links: underline (text-decoration: underline), border-bottom, increased font-weight, or a visible icon. The indicator must be present in the default state, not just on hover.

mediumNavigation region "Top Menu" (present on www.ally.com) is missing on this page. Navigation should appear consistently across pages.WCAG 3.2.3
Element:
<!-- missing: nav[aria-label="Top Menu"] -->
Sonde Fix Plan

Ensure the "Top Menu" navigation region appears on all pages in the site. Consistent navigation helps users predict where to find content.

mediumClicking "Visit Modelshop" inserts 8 element(s) without ARIA live region. Screen readers will not announce this dynamic content.WCAG 4.1.3
Element:
<a class="Link_link__JHJ4m Modal_dialogTrigger__6C7WP styles_interstitialTrigger__s2UXm Link_-no-inline__7AGiC Link_-embedded-block___x1B8" data-allytmln="venturesExternalLinkInterstitial" href="##" t
Sonde Fix Plan

Wrap dynamically inserted content in an element with aria-live="polite" (or role="status"/"alert") so assistive technologies announce the change.

mediumClicking "SIPC" inserts 7 element(s) without ARIA live region. Screen readers will not announce this dynamic content.WCAG 4.1.3
Element:
<a class="Link_link__JHJ4m Modal_dialogTrigger__6C7WP styles_interstitialTrigger__s2UXm styles_-underline__agAoU styles_-inline__545GH Link_-underline__lnWRl Link_-inline__GtMVe" data-allytmln="defaul
Sonde Fix Plan

Wrap dynamically inserted content in an element with aria-live="polite" (or role="status"/"alert") so assistive technologies announce the change.

mediumClicking "Learn More" inserts 7 element(s) without ARIA live region. Screen readers will not announce this dynamic content.WCAG 4.1.3
Element:
<a class="Modal_dialogTrigger__6C7WP Link_ctaTertiary__Ai4Hu Link_-dark__6RmSy Link_buttonAsLink__4_bbF" data-allytmln="learnMoreRobKerr" aria-label="learn more rob kerr" role="button" href="##" allyt
Sonde Fix Plan

Wrap dynamically inserted content in an element with aria-live="polite" (or role="status"/"alert") so assistive technologies announce the change.

mediumClicking "Visit Car IQ" inserts 7 element(s) without ARIA live region. Screen readers will not announce this dynamic content.WCAG 4.1.3
Element:
<a class="Link_link__JHJ4m Modal_dialogTrigger__6C7WP styles_interstitialTrigger__s2UXm Link_-no-inline__7AGiC Link_-embedded-block___x1B8" data-allytmln="venturesExternalLinkInterstitial" href="##" t
Sonde Fix Plan

Wrap dynamically inserted content in an element with aria-live="polite" (or role="status"/"alert") so assistive technologies announce the change.

mediumClicking "Visit Greenlight" inserts 8 element(s) without ARIA live region. Screen readers will not announce this dynamic content.WCAG 4.1.3
Element:
<a class="Link_link__JHJ4m Modal_dialogTrigger__6C7WP styles_interstitialTrigger__s2UXm Link_-no-inline__7AGiC Link_-embedded-block___x1B8" data-allytmln="venturesExternalLinkInterstitial" href="##" t
Sonde Fix Plan

Wrap dynamically inserted content in an element with aria-live="polite" (or role="status"/"alert") so assistive technologies announce the change.

mediumx-content-type-options header has invalid or weak value: nosniff nosniff
Page: /ventures
Sonde Fix Plan

Add X-Content-Type-Options: nosniff Add Referrer-Policy: strict-origin-when-cross-origin or no-referrer

lowBroken link: https://www.tiktok.com/@allydoitright returned status 403 Forbidden after 1 attempts
Page: /ventures
Element:
<a href="https://www.tiktok.com/@allydoitright">TikTok Logo</a>

Methodology

The Sonde Score is a universal 0–1000 compliance index — think of it like a credit score for accessibility. Each finding is weighted by its impact on human access: a keyboard trap (critical) counts far more than a best-practice suggestion (low). The raw penalty is normalized per page so scores are comparable across sites of any size. A harmonic curve ensures every site gets a meaningful score — no zeros, no false perfection.

Score = round(1000 × S / (S + P/N))

where S = sensitivity (750), P = Σ(weight × count), N = pages scanned

TierWeightExamples
Critical10Keyboard traps, missing page language
High3Missing alt text, insufficient contrast
Medium1Heading hierarchy, unclear link purpose
Low0.25Best-practice suggestions

The Sonde Score is a living standard (v0.1). We’re building it in the open because accessibility is too important for closed-door decisions. Your expertise makes it better.

Enter Mission Control

Review raw findings data, track changes between scans, and contribute to Sonde’s open methodology.

Nominate a Site for the Daylight Index

Know a public website that should be on the accessibility leaderboard? Nominate it — we’ll scan it and publish the results.

Nominate a Site →

This report is a health check, not a verdict. Every website has room to improve.

Disclaimer: This report presents the results of automated accessibility analysis and is provided free of charge, as-is, without warranty of any kind. Findings are generated by software, not by human accessibility experts, and may contain errors or omissions. Automated testing can detect approximately 30–40% of accessibility issues; manual expert evaluation is recommended for complete conformance assessment. Scores reflect algorithmic analysis under a published methodology open to public review — they are not legal determinations of compliance. Results reflect the state of the website at the time of scanning and may change as the site is updated. Nothing in this report constitutes legal advice. Sonde assumes no liability for decisions made based on these results.

Compliance methodology: NIST 800-53 Rev 5 (usnistgov/oscal-content v1.4.0, catalog 5.2.0) · NIST PRIVACY overlay (usnistgov/oscal-content v1.4.0, catalog 5.2.0) · FedRAMP Rev 5 (OSCAL-Foundation/fedramp-resources a6b85ed451, catalog fedramp-3.0.0rc1-oscal-1.1.2).