Accessibility
· 13 checks — Landmarks, headings, alt text, forms, and link quality rolled into one auditable list.DWeb ManifestActionNot foundFIX
No web manifest found.
DDark Mode SupportActionTheme color onlyFIX
Detection limited to meta tags and inline styles.
DPrint StylesheetActionNo print stylesFIX
BLandmark Structure6 landmarksREVIEW
Multiple navigations need aria-label to distinguish them for screen readers.
Some <nav> elements lack aria-label — screen-reader users hear 'navigation' multiple times with no way to distinguish them.
Learn more ▾ ▴
When a page has multiple <nav> regions (primary, footer, breadcrumb), each needs aria-label or aria-labelledby. AT users navigate by landmark; identical 'navigation' announcements force them to enter each one to discover purpose.
Source: WAI-ARIA Authoring Practices
Add a skip link as the first focusable element so keyboard users can bypass repeated navigation.
Without a skip-nav link, keyboard users tab through every nav item before reaching content — every page, every visit.
Learn more ▾ ▴
WCAG 2.4.1 (Bypass Blocks) requires a mechanism to skip past repeated content. The standard implementation is a 'Skip to main content' link that's the first focusable element, visually hidden until focused. Three lines of HTML + four of CSS.
Source: WCAG 2.1 SC 2.4.1
CHeading HierarchyAction35 headings, 1 skip(s)REVIEW
- H3 6 Ways to Implement Integrated Studies as a Music Teacher
- H3 How to Help Students Develop a Personal Moral Compass for School
- H3 How to Create Highly Effective, Discussion-Worthy Multiple-Choice Questions
- H2 A Friendly Reminder!
- H3 Building Empathy Through Mixed-Media Art
- H3 How Do I Carve Out Time for What I Need to Do as a Leader?
- H3 Low-Lift Elementary Classroom Routines That Get Students Ready to Learn
- H3 A Simple Game to Teach Effective Storytelling
- H3 Igniting Student Curiosity in Math and Science Lessons
- H3 How Number Lines Can Boost Mathematical Understanding
- H3 How to Avoid Rushing—a Pitfall for Even the Most Experienced Teachers
- H3 Classroom Routines That Support Mathematical Thinking
- H3 Streaming Toward Reading Fluency
- H3 Writing Notes by Hand for Better Processing
- H3 Why Students Give Up on a Task—and What Teachers Can Do About It
- H3 60-Second Strategy: Whisper It in Your Hand
- H3 Unlocking Effortful Thinking by Asking the Right Questions
- H3 Nature-Based Activities for Preschool
- H3 Building Students’ Confidence and Resilience by Shifting Your Attention
- H3 5 Ways to Build Respect in Early Childhood Classrooms
- H3 Building Empathy Through Haiku
- H3 Lesson Starters That Work for You and Your Students
- H3 60-Second Strategy: Whisper It in Your Hand
- H3 Bouncing Back After a Class Is Interrupted
- H3 Using Fun Songs to Transition Between Activities in Preschool
- H3 Research-Backed Strategies to Keep Students on Task
- H3 13 Books Featuring Characters With Disabilities and Physical Differences
- H3 10 Books With Neurodivergent Characters
- H3 A Principal’s 4 Steps for Reducing Chronic Absenteeism
- H3 For Elementary Counselors, Big Caseloads Require Getting Creative
- H3 Helping Students Return From a Long Absence
- H5 Popular Topics skipped
- H5 Grade Levels
- H5 About Us
- H3 Follow Edutopia
Every page should have one H1 that describes the page content.
No H1 means screen-reader users can't identify the page's primary topic, and Google's content-extraction degrades.
Learn more ▾ ▴
The H1 is the document title for assistive tech and a strong signal to search engines about page topic. Pages without one force screen readers to fall back to the <title> attribute or page chrome. Add a single H1 that names the page's primary subject.
Source: WCAG 2.4.6 / Google Search Central
Skipping heading levels breaks the document outline. Screen readers may interpret missing levels as structural errors.
Skipping heading levels breaks the document outline — screen-reader users lose track of section nesting.
Learn more ▾ ▴
Screen reader users navigate by jumping between headings (H1 → H2 → H3). Skipping (H1 → H3) breaks the sense of hierarchy. Use sequential levels even if you don't like the default styling — restyle with CSS instead. WCAG 1.3.1 (Info and Relationships) treats this as an A failure.
Source: WCAG 2.1 SC 1.3.1 / W3C WAI
CLink & Button QualityAction30 issue(s) across 174 links and 37 buttonsREVIEW
| Element | Text | Issue | Suggested Fix |
|---|---|---|---|
| https://www.facebook.com/edutopia | facebook icon | new tab | Add '(opens in new tab)' to text |
| https://bsky.app/profile/edutopia.org | bluesky icon | new tab | Add '(opens in new tab)' to text |
| https://www.pinterest.com/edutopia/ | pinterest icon | new tab | Add '(opens in new tab)' to text |
| https://www.instagram.com/edutopia/ | instagram icon | new tab | Add '(opens in new tab)' to text |
| https://www.youtube.com/edutopia | youtube icon | new tab | Add '(opens in new tab)' to text |
| https://glef.org/ | George Lucas Educational Found… | new tab | Add '(opens in new tab)' to text |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
Add '(opens in new tab)' to link text or aria-label.
https://www.facebook.com/edutopia; https://bsky.app/profile/edutopia.org; https://www.pinterest.com/edutopia/; https://www.instagram.com/edutopia/; https://www.youtube.com/edutopia; https://glef.org/
Links with target="_blank" without rel="noopener" leak the originating page's window context — security and UX issue.
Learn more ▾ ▴
Without rel="noopener", the new tab can navigate the original tab via window.opener (tab-nabbing attack). Modern browsers default to noopener for target=_blank but only since recent versions. Always set rel="noopener noreferrer" explicitly.
Source: MDN target / OWASP
Icon-only buttons need an aria-label so screen readers can announce them.
button.lite (#232 on page); button.lite (#254 on page); button.lite (#282 on page); button.lite (#329 on page); button.lite (#353 on page); button.lite (#377 on page); button.lite (#405 on page); button.lite (#430 on page); button.lite (#454 on page); button.lite (#482 on page) (+20 more)
Buttons with no accessible text (icon-only, no aria-label) can't be activated by voice control or understood by screen readers.
Source: WCAG 2.1 SC 4.1.2
B404 Error PageHTTP 404, custom pageREVIEW
CFavicon & BrandingAction3 icon(s) detectedREVIEW
BLighthouse Accessibility AuditsScore 87/100 — 3 failing, 18 passedREVIEW
Accessibility
These checks highlight opportunities to improve the accessibility of your web app. Automatic detection can only detect a subset of issues and does not guarantee the accessibility of your web app, so manual testing is also encouraged.
Names and labels
When a button doesn't have an accessible name, screen readers announce it as "button", making it unusable for users who rely on screen readers. Learn how to make buttons more accessible.
Performance issues directly impact user engagement and conversion rates.
| Failing Elements |
|---|
div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite |
div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite |
div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite |
div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite |
div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite |
div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite |
div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite |
div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite |
div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite |
div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite |
div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite |
div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite |
div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite |
div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite |
div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite |
div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite |
div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite |
div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite |
div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite |
div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite |
div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite |
div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite |
div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite |
div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite |
div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite |
div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite |
div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite |
div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite |
div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite |
div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite div.css-15k3j3w > div.css-b06ysn > div.lite > button.lite |
These are opportunities to improve the semantics of the controls in your application. This may enhance the experience for users of assistive technology, like a screen reader.
Contrast
Low-contrast text is difficult or impossible for many users to read. Learn how to provide sufficient color contrast.
Performance issues directly impact user engagement and conversion rates.
| Failing Elements |
|---|
INTEGRATED STUDIES div.css-124ae9w > div.hero-card-bottom-wrap-bottom > div.css-1seknyz > div.eyebrow |
Bill Manchester div.hero-card-bottom-wrap-bottom > div.css-1seknyz > div.css-rs4cum > a.css-1s343gm |
CRITICAL THINKING div.css-o76eps > div.view > div.css-wi0ozw > div.eyebrow |
Maurice J. Elias div.view > div.css-wi0ozw > div.css-rs4cum > a.css-1s343gm |
FORMATIVE ASSESSMENT div.css-o76eps > div.view > div.css-wi0ozw > div.eyebrow |
Katie R. Medill div.view > div.css-wi0ozw > div.css-rs4cum > a.css-1s343gm |
Hear from peers! div.css-pfq62c > div.skeleton-container > div > a.css-1tz00mm |
SOCIAL & EMOTIONAL LEARNING (SEL) div.css-o76eps > div.view > div.css-wi0ozw > div.eyebrow |
ADMINISTRATION & LEADERSHIP div.css-o76eps > div.view > div.css-wi0ozw > div.eyebrow |
Andrew Miller div.view > div.css-wi0ozw > div.css-rs4cum > a.css-1s343gm |
CLASSROOM MANAGEMENT div.css-o76eps > div.view > div.css-wi0ozw > div.eyebrow |
Wendy Turner div.view > div.css-wi0ozw > div.css-rs4cum > a.css-1s343gm |
LITERACY div.css-o76eps > div.view > div.css-wi0ozw > div.eyebrow |
Andrew Paull div.view > div.css-wi0ozw > div.css-rs4cum > a.css-1s343gm |
STUDENT ENGAGEMENT div.css-o76eps > div.view > div.css-wi0ozw > div.eyebrow |
Kathryn Lemerich div.view > div.css-wi0ozw > div.css-rs4cum > a.css-1s343gm |
Jessica Holloway div.view > div.css-wi0ozw > div.css-rs4cum > a.css-1s343gm |
RESEARCH div.css-o76eps > div.view > div.css-wi0ozw > div.eyebrow |
Andrea Tamayo div.view > div.css-wi0ozw > div.css-rs4cum > a.css-1s343gm |
CURRICULUM PLANNING div.css-o76eps > div.view > div.css-wi0ozw > div.eyebrow |
Miriam Plotinsky div.view > div.css-wi0ozw > div.css-rs4cum > a.css-1s343gm |
POPULAR div.css-1f07lbu > div.css-jxc7g8 > div.css-q1v2j2 > span.css-1td86i2 |
COMMUNICATION SKILLS div.css-o76eps > div.view > div.css-wi0ozw > div.eyebrow |
Christina Grassi div.view > div.css-wi0ozw > div.css-rs4cum > a.css-1s343gm |
Meghan Lowe div.view > div.css-wi0ozw > div.css-rs4cum > a.css-1s343gm |
TECHNOLOGY INTEGRATION div.css-o76eps > div.view > div.css-wi0ozw > div.eyebrow |
BRAIN-BASED LEARNING div.css-o76eps > div.view > div.css-wi0ozw > div.eyebrow |
STUDENT ENGAGEMENT div.css-o76eps > div.view > div.css-wi0ozw > div.eyebrow |
Cathleen Beachboard div.view > div.css-wi0ozw > div.css-rs4cum > a.css-1s343gm |
TEACHING STRATEGIES div.css-o76eps > div.view > div.css-wi0ozw > div.eyebrow |
SOCIAL & EMOTIONAL LEARNING (SEL) div.css-jxc7g8 > div.css-q1v2j2 > span.css-1td86i2 > a |
TEACHING STRATEGIES div.css-o76eps > div.view > div.css-wi0ozw > div.eyebrow |
SOCIAL & EMOTIONAL LEARNING (SEL) div.css-o76eps > div.view > div.css-wi0ozw > div.eyebrow |
Connie Morris div.view > div.css-wi0ozw > div.css-rs4cum > a.css-1s343gm |
SOCIAL & EMOTIONAL LEARNING (SEL) div.css-o76eps > div.view > div.css-wi0ozw > div.eyebrow |
Donna Paul div.view > div.css-wi0ozw > div.css-rs4cum > a.css-1s343gm |
SOCIAL & EMOTIONAL LEARNING (SEL) div.css-o76eps > div.view > div.css-wi0ozw > div.eyebrow |
Cara Zelas div.view > div.css-wi0ozw > div.css-rs4cum > a.css-1s343gm |
SOCIAL & EMOTIONAL LEARNING (SEL) div.css-o76eps > div.view > div.css-wi0ozw > div.eyebrow |
Matthew James Friday div.view > div.css-wi0ozw > div.css-rs4cum > a.css-1s343gm |
CLASSROOM MANAGEMENT div.css-jxc7g8 > div.css-q1v2j2 > span.css-1td86i2 > a |
CLASSROOM MANAGEMENT div.css-o76eps > div.view > div.css-wi0ozw > div.eyebrow |
Rachel Lawton div.view > div.css-wi0ozw > div.css-rs4cum > a.css-1s343gm |
TEACHING STRATEGIES div.css-o76eps > div.view > div.css-wi0ozw > div.eyebrow |
CLASSROOM MANAGEMENT div.css-o76eps > div.view > div.css-wi0ozw > div.eyebrow |
Crystal Frommert div.view > div.css-wi0ozw > div.css-rs4cum > a.css-1s343gm |
CLASSROOM MANAGEMENT div.css-o76eps > div.view > div.css-wi0ozw > div.eyebrow |
Corrie Littlejohn-Pope div.view > div.css-wi0ozw > div.css-rs4cum > a.css-1s343gm |
CLASSROOM MANAGEMENT div.css-o76eps > div.view > div.css-wi0ozw > div.eyebrow |
Todd Finley div.view > div.css-wi0ozw > div.css-rs4cum > a.css-1s343gm |
STUDENT WELLNESS div.css-jxc7g8 > div.css-q1v2j2 > span.css-1td86i2 > a |
STUDENT WELLNESS div.css-o76eps > div.view > div.css-wi0ozw > div.eyebrow |
Amy Brownlee div.view > div.css-wi0ozw > div.css-rs4cum > a.css-1s343gm |
STUDENT WELLNESS div.css-o76eps > div.view > div.css-wi0ozw > div.eyebrow |
Amy Brownlee div.view > div.css-wi0ozw > div.css-rs4cum > a.css-1s343gm |
ADMINISTRATION & LEADERSHIP div.css-o76eps > div.view > div.css-wi0ozw > div.eyebrow |
Jerald McNair div.view > div.css-wi0ozw > div.css-rs4cum > a.css-1s343gm |
STUDENT WELLNESS div.css-o76eps > div.view > div.css-wi0ozw > div.eyebrow |
Sheila Garth div.view > div.css-wi0ozw > div.css-rs4cum > a.css-1s343gm |
STUDENT WELLNESS div.css-o76eps > div.view > div.css-wi0ozw > div.eyebrow |
Ella Miesner div.view > div.css-wi0ozw > div.css-rs4cum > a.css-1s343gm |
Privacy Policy section > ul.css-p2bolw > li.css-11rkab1 > a.css-14vv2hs |
Terms of Use section > ul.css-p2bolw > li.css-11rkab1 > a.css-14vv2hs |
These are opportunities to improve the legibility of your content.
Navigation
Properly ordered headings that do not skip levels convey the semantic structure of the page, making it easier to navigate and understand when using assistive technologies. Learn more about heading order.
Performance issues directly impact user engagement and conversion rates.
| Failing Elements |
|---|
POPULAR TOPICS section.topic-links > nav.css-13gb0g9 > div.css-1swx3yj > h5.css-13tn2mc |
These are opportunities to improve keyboard navigation in your application.
A+Alt Text QualityAll 37 images OKPASS
AForm Accessibility1 of 2 controls have issuesPASS
| Control | Type | Label | Method |
|---|---|---|---|
| #headerSearch | text | Search | for/id |
| op | submit | (none) | none |
Form controls need a <label>, aria-label, or aria-labelledby for screen readers.
<input type="submit" name="op">
Form controls without labels — assistive tech announces 'edit text' with no context; users can't complete forms.
Source: WCAG 2.1 SC 3.3.2
A+Color Contrast (Screenshot)20 text elements analyzed, 0 fail WCAG AAPASS
Analyzes text contrast against the actual rendered page, including background images, gradients, and overlays that CSS-based tools cannot detect.
Show all checked elements (20)
| Element | Ratio | Required | FG | BG | Result |
|---|---|---|---|---|---|
| h2 A Friendly Reminder! | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| h3 Follow Edutopia | 21.00:1 | 3.0:1 | #000000 | #FFFFFF | Pass |
| title Edutopia - What Work… | 21.00:1 | 4.5:1 | #000000 | #FFFFFF | Pass |
| span Close | 21.00:1 | 4.5:1 | #000000 | #FFFFFF | Pass |
| div Edutopia | 21.00:1 | 4.5:1 | #000000 | #FFFFFF | Pass |
| span Menu | 21.00:1 | 4.5:1 | #000000 | #FFFFFF | Pass |
| button Topics | 21.00:1 | 4.5:1 | #000000 | #FFFFFF | Pass |
| a Assessment | 21.00:1 | 4.5:1 | #000000 | #FFFFFF | Pass |
| a Integrated Studies | 21.00:1 | 4.5:1 | #000000 | #FFFFFF | Pass |
| a Project-Based Learni… | 21.00:1 | 4.5:1 | #000000 | #FFFFFF | Pass |
| a Social and Emotional… | 21.00:1 | 4.5:1 | #000000 | #FFFFFF | Pass |
| a Professional Learnin… | 21.00:1 | 4.5:1 | #000000 | #FFFFFF | Pass |
| a Technology Integrati… | 21.00:1 | 4.5:1 | #000000 | #FFFFFF | Pass |
| a ALL TOPICS | 21.00:1 | 4.5:1 | #000000 | #FFFFFF | Pass |
| a Videos | 21.00:1 | 4.5:1 | #000000 | #FFFFFF | Pass |
| a Ask & Answer | 21.00:1 | 4.5:1 | #000000 | #FFFFFF | Pass |
| span POWER UP! | 21.00:1 | 4.5:1 | #000000 | #FFFFFF | Pass |
| span Search | 21.00:1 | 4.5:1 | #000000 | #FFFFFF | Pass |
| label Search | 21.00:1 | 4.5:1 | #000000 | #FFFFFF | Pass |
| div Integrated Studies | 21.00:1 | 4.5:1 | #000000 | #FFFFFF | Pass |
Methodology: The top 20 text elements by font size were checked. Background color was sampled from the desktop screenshot using a 5-point pattern. WCAG 2.1 AA requires 4.5:1 for normal text and 3:1 for large text.