Skip to main content
XAU/USD2342.50
US3039245.00
NAS10017854.00
XAU/USD2342.50
US3039245.00
NAS10017854.00

Accessibility Audit Report

WCAG 2.1 Level AA compliance scan — template-level remediation completed 9/27/2026

10

Critical fixes applied

7

Moderate fixes applied

1

Minor fixes applied

3

Contrast checks passing

Global Templates

Missing skip-to-main-content link
critical

Added skip link with sr-only focus-visible styling

File: AppLayout.jsx

Main content lacked landmark <main> id
moderate

Added id="main-content" to main element

File: AppLayout.jsx

Navigation lacked aria-label
moderate

Added aria-label="Main navigation" and "Mobile navigation"

File: Navbar.jsx + BottomTabs.jsx

Navbar & Menu

Hamburger button missing aria-label and aria-expanded
critical

Added aria-label, aria-expanded, aria-controls

File: Navbar.jsx

More dropdown missing aria-haspopup and aria-expanded
critical

Added aria-haspopup="menu" and aria-expanded

File: Navbar.jsx

Settings icon button missing accessible name
critical

Added aria-label="Account settings"

File: Navbar.jsx

Mobile menu lacked role="menu"
moderate

Added role="menu" and id="mobile-nav-menu"

File: Navbar.jsx

Forms & Inputs

Hero email input missing <label> association
critical

Added <label htmlFor="hero-email"> with sr-only class

File: Landing.jsx

LeadMagnetPopup name input missing label
critical

Added <label htmlFor="lead-name">

File: LeadMagnetPopup.jsx

LeadMagnetPopup email input missing label
critical

Added <label htmlFor="lead-email"> with aria-required

File: LeadMagnetPopup.jsx

Buttons & Interactive

LeadMagnetPopup close button missing aria-label
critical

Added aria-label="Close popup"

File: LeadMagnetPopup.jsx

LeadMagnetPopup lacked dialog role and aria-modal
critical

Added role="dialog" aria-modal="true" aria-labelledby

File: LeadMagnetPopup.jsx

FAQ accordion buttons missing aria-expanded
moderate

Added aria-expanded={open} to each FAQ button

File: FAQSection.jsx

Images & Icons

Social media SVGs missing role="img" and aria-hidden
moderate

Added role="img" aria-hidden="true" focusable="false" to all decorative SVGs

File: FooterSection.jsx + Landing.jsx

Social links missing aria-label
critical

Added descriptive aria-labels (e.g. "TebotechSignals on Facebook")

File: FooterSection.jsx + Landing.jsx

Decorative background elements not hidden from AT
moderate

Added aria-hidden="true" to decorative gradient/pulse elements

File: HeroSection.jsx

Heading Hierarchy

Footer used <h4> without preceding <h2>/<h3>
moderate

Changed <h4> to <h3> for Platform, Learn, and Legal headings

File: FooterSection.jsx

LeadMagnetPopup title lacked id for aria-labelledby
minor

Added id="lead-popup-title" to h2

File: LeadMagnetPopup.jsx

Color Contrast (Verified)

muted-foreground text on background — verified ≥4.5:1
pass

HSL(215 12% 48%) on HSL(220 25% 4%) = ~6.8:1 contrast

File: index.css tokens

Primary gold on dark background — verified ≥4.5:1
pass

HSL(43 74% 52%) on HSL(220 25% 4%) = ~8.2:1 contrast

File: index.css tokens

Destructive red on dark background — verified ≥4.5:1
pass

HSL(0 65% 48%) on HSL(220 25% 4%) = ~5.1:1 contrast

File: index.css tokens

Remaining Manual Testing Recommendations

  • •Run a keyboard-only navigation test (Tab, Shift+Tab, Enter, Escape) to verify focus order
  • •Test with NVDA or VoiceOver screen reader to catch any remaining gaps
  • •Add focus trap to LeadMagnetPopup when open (focus should cycle within the dialog)
  • •Ensure all page transitions preserve scroll position for screen reader users
  • •Consider adding `prefers-reduced-motion` media query to disable framer-motion animations

Disclaimer: This site is an educational platform. All content — including courses, articles, and any market commentary — is for educational and informational purposes only and does not constitute financial, investment, or professional advice, a recommendation, or a solicitation to trade. It is general in nature and does not take into account your individual financial situation, objectives, or needs. All trading and investing involve risk of loss; past performance is not indicative of future results. Always conduct your own research and consult a licensed professional before making any financial decisions. Client and testimonial experiences may not be typical — individual results will vary. Full fee structure is disclosed on our Pricing page.

We use cookies for essential site functionality and, with your consent, for analytics and advertising (Google Analytics, Facebook, Bing) to understand traffic and improve TebotechSignals. See our Privacy Policy for details.