Accessibility
· 24 checks — Landmarks, headings, alt text, forms, and link quality rolled into one auditable list.DPrint StylesheetActionNo print stylesFIX
CLink & Button QualityAction3 issue(s) across 54 links and 6 buttonsREVIEW
| Element | Text | Issue | Suggested Fix |
|---|---|---|---|
| https://go.microsoft.com/fwlink/?LinkId=… | Privacy Statement | new tab | Add '(opens in new tab)' to text |
| https://aka.ms/3rdpartycookies | Third-Party Cookies | new tab | Add '(opens in new tab)' to text |
| https://slack.engineering/typescript-at-… | Read | new tab | Add '(opens in new tab)' to text |
| https://angular.io/ | Angular | new tab | Add '(opens in new tab)' to text |
| https://vuejs.org/ | Vue | new tab | Add '(opens in new tab)' to text |
| https://jestjs.io/ | Jest | new tab | Add '(opens in new tab)' to text |
| https://redux.js.org/ | Redux | new tab | Add '(opens in new tab)' to text |
| https://ionicframework.com/ | Ionic | new tab | Add '(opens in new tab)' to text |
| https://probot.github.io/ | Probot | new tab | Add '(opens in new tab)' to text |
| https://deno.land/ | Deno | new tab | Add '(opens in new tab)' to text |
| https://github.com/vercel/vercel | Vercel | new tab | Add '(opens in new tab)' to text |
| https://yarnpkg.com/ | Yarn | new tab | Add '(opens in new tab)' to text |
| https://github.com/desktop/desktop/ | GitHubDesktop | new tab | Add '(opens in new tab)' to text |
| https://insights.stackoverflow.com/surve… | Stack Overflow 2020 Developer … | new tab | Add '(opens in new tab)' to text |
| https://2020.stateofjs.com/en-US/technol… | 2020 State of JS | new tab | Add '(opens in new tab)' to text |
| <input> | (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://go.microsoft.com/fwlink/?LinkId=521839; https://aka.ms/3rdpartycookies; https://slack.engineering/typescript-at-slack-a81307fa288d; https://angular.io/; https://vuejs.org/; https://jestjs.io/; https://redux.js.org/; https://ionicframework.com/; https://probot.github.io/; https://deno.land/ (+5 more)
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.
input[type="submit"] (#89 on page); button#language-recommendation-open; button#language-recommendation-no-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
BFavicon & Branding18 icon(s) detectedREVIEW
BDark Mode SupportDark mode detectedREVIEW
Detection limited to meta tags and inline styles.
ALandmark Structure4 landmarksPASS
The skip-link anchor (e.g., `href="#main"`) points at an ID that has no corresponding element on the page. Activating the link does nothing -- a silent WCAG 2.4.1 failure that the visual link presence hides. Add `id="main"` (or whichever matches the href) to the target landmark.
Skip link points at an ID that doesn't exist on the page. The link looks fine visually but does nothing when activated -- silent WCAG 2.4.1 failure.
Learn more ▾ ▴
Find the target landmark (typically <main> or the first <h1>) and add `id="..."` matching the skip link's href fragment. Test by tabbing to the skip link and pressing Enter -- focus should jump to the target.
Source: WCAG 2.1 SC 2.4.1
A+Heading Hierarchy15 headingsPASS
- H1 TypeScript is JavaScript with syntax for types.
- H2 What is TypeScript?
- H3 JavaScript and More
- H3 A Result You Can Trust
- H3 Safety at Scale
- H2 Get Started
- H2 Adopt TypeScript Gradually
- H3 Describe Your Data
- H2 TypeScript becomes JavaScript via the delete key.
- H2 TypeScript Testimonials
- H3 Open Source with TypeScript
- H2 Loved by Developers
- H2 Get Started
- H3 Using TypeScript
- H3 Community
A+Heading Text QualityAll 15 heading(s) have substantive, well-formed textPASS
A+Alt Text QualityAll 3 images OKPASS
AForm Accessibility1 of 2 controls have issuesPASS
| Control | Type | Label | Method |
|---|---|---|---|
| #search-box-top | search | Search the TypeScript site | aria-label |
| input | submit | (none) | none |
Form controls need a <label>, aria-label, or aria-labelledby for screen readers.
<input type="submit">
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+Form Input Types2 form control(s) checked, no type mismatchesPASS
A+Form Input Quality2 form control(s) checked, no input-semantic issuesPASS
A+Mobile Keyboard & AutofillNo autofill-eligible form controlsPASS
A+Document LanguageLang attribute set to "en"PASS
A+Tabindex Anti-Patterns6 explicit tabindex attribute(s) checked, no anti-patternsPASS
A+Iframe AccessibilityNo iframes on this pagePASS
A+Tap Target AdequacyAll tap targets meet WCAG 2.5.5/2.5.8 sizingPASS
A+Mobile-Readable Font SizesAll 295 visible text node(s) render at >= 12 CSS pixelsPASS
A+Web ManifestPWA-readyPASS
A+PWA Depth1 PWA signal(s) surfacedPASS
A+Mobile UX Depth1 mobile-depth signal(s) detectedPASS
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 |
|---|---|---|---|---|---|
| h1 TypeScript is | 4.63:1 | 3.0:1 | #000000 | #3178C6 | Pass |
| h2 What is TypeScript? | 4.63:1 | 3.0:1 | #000000 | #3178C6 | Pass |
| h2 Get Started | 4.63:1 | 3.0:1 | #000000 | #3178C6 | Pass |
| h2 Adopt TypeScript Gra… | 4.63:1 | 3.0:1 | #000000 | #3178C6 | Pass |
| h2 TypeScript becomes J… | 4.63:1 | 3.0:1 | #000000 | #3178C6 | Pass |
| h2 TypeScript Testimoni… | 4.63:1 | 3.0:1 | #000000 | #3178C6 | Pass |
| h2 Loved by Developers | 4.63:1 | 3.0:1 | #000000 | #3178C6 | Pass |
| h2 Get Started | 4.63:1 | 3.0:1 | #000000 | #3178C6 | Pass |
| h3 JavaScript and More | 4.63:1 | 3.0:1 | #000000 | #3178C6 | Pass |
| h3 A Result You Can Tru… | 4.63:1 | 3.0:1 | #000000 | #3178C6 | Pass |
| h3 Safety at Scale | 4.63:1 | 3.0:1 | #000000 | #3178C6 | Pass |
| h3 Describe Your Data | 4.63:1 | 3.0:1 | #000000 | #3178C6 | Pass |
| h3 Open Source with Typ… | 4.63:1 | 3.0:1 | #000000 | #3178C6 | Pass |
| h3 Using TypeScript | 4.63:1 | 3.0:1 | #000000 | #3178C6 | Pass |
| h3 Community | 4.63:1 | 3.0:1 | #000000 | #3178C6 | Pass |
| title TypeScript: JavaScri… | 18.76:1 | 4.5:1 | #000000 | #F2F2F2 | Pass |
| p We use optional cook… | 18.76:1 | 4.5:1 | #000000 | #F2F2F2 | Pass |
| a Privacy Statement | 18.76:1 | 4.5:1 | #000000 | #F2F2F2 | Pass |
| a Third-Party Cookies | 18.76:1 | 4.5:1 | #000000 | #F2F2F2 | Pass |
| button Accept | 18.76:1 | 4.5:1 | #000000 | #F2F2F2 | 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.
A+Lighthouse Accessibility AuditsScore 100/100 — 0 failing, 28 passedPASS
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.