Accessibility
· 13 checks — Landmarks, headings, alt text, forms, and link quality rolled into one auditable list.DLink & Button QualityAction39 issue(s) across 113 links and 44 buttonsFIX
| Element | Text | Issue | Suggested Fix |
|---|---|---|---|
| https://www.meetup.com/blog/i-used-meetu… | I used Meetup to make friends … | new tab | Add '(opens in new tab)' to text |
| https://www.meetup.com/blog/how-to-turn-… | How to turn casual connections… | new tab | Add '(opens in new tab)' to text |
| https://www.meetup.com/blog/do-you-have-… | Do you have the “right” nu… | new tab | Add '(opens in new tab)' to text |
| https://help.meetup.com/hc | Help | new tab | Add '(opens in new tab)' to text |
| https://www.meetup.com/blog/category/loc… | Local guides | new tab | Add '(opens in new tab)' to text |
| https://www.meetup.com/blog/ | Blog | new tab | Add '(opens in new tab)' to text |
| https://bndspn.com/join-meetup | Careers | new tab | Add '(opens in new tab)' to text |
| https://www.meetup.com/blog/category/kee… | Podcast | new tab | Add '(opens in new tab)' to text |
| https://www.facebook.com/meetup/ | Meetup on Facebook | new tab | Add '(opens in new tab)' to text |
| https://twitter.com/Meetup/ | Meetup on Twitter | new tab | Add '(opens in new tab)' to text |
| https://www.youtube.com/meetup | Meetup on YouTube | new tab | Add '(opens in new tab)' to text |
| https://www.instagram.com/meetup/ | new tab | Add '(opens in new tab)' to text | |
| https://www.tiktok.com/@meetup | TikTok | new tab | Add '(opens in new tab)' to text |
| https://play.google.com/store/apps/detai… | Download app from Google Play | new tab | Add '(opens in new tab)' to text |
| https://apps.apple.com/us/app/meetup/id3… | Download app from App Store | new tab | Add '(opens in new tab)' to text |
| https://help.meetup.com/hc/articles/3600… | Terms of service | new tab | Add '(opens in new tab)' to text |
| https://help.meetup.com/hc/articles/3600… | Privacy policy | new tab | Add '(opens in new tab)' to text |
| https://help.meetup.com/hc/articles/3600… | Cookie policy | new tab | Add '(opens in new tab)' to text |
| /license-attribution/index.html | License attribution | new tab | Add '(opens in new tab)' to text |
| https://help.meetup.com/hc | Help | new tab | Add '(opens in new tab)' to text |
| https://www.bendingspoons.com | bendingSpoonsWordmark icon | 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 |
| <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 |
Image-only links need alt text on the image (or aria-label on the link) so screen readers can announce them.
a[href="https://www.meetup.com/blog/i-used-meetup-to-make-friends-at-brunch/"]; a[href="https://www.meetup.com/blog/how-to-turn-casual-connections-into-close-friends…"]; a[href="https://www.meetup.com/blog/do-you-have-the-right-number-of-friends/"]
Image-only links with no alt are unidentifiable to screen-reader users — link's destination is invisible.
Source: WCAG 2.1 SC 2.4.4
Add '(opens in new tab)' to link text or aria-label.
https://help.meetup.com/hc; https://www.meetup.com/blog/category/local-guides/; https://www.meetup.com/blog/; https://bndspn.com/join-meetup; https://www.meetup.com/blog/category/keep-connected-podcast/; https://www.facebook.com/meetup/; https://twitter.com/Meetup/; https://www.youtube.com/meetup; https://www.instagram.com/meetup/; https://www.tiktok.com/@meetup (+8 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.
button.inline-flex (#187 on page); button.relative (#267 on page); button.relative (#273 on page); button[data-testid="share-btn-redesign"]; button[data-testid="share-btn-redesign"]; button[data-testid="share-btn-redesign"]; button[data-testid="share-btn-redesign"]; button[data-testid="share-btn-redesign"]; button[data-testid="share-btn-redesign"]; button[data-testid="share-btn-redesign"] (+29 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
F404 Error PageActionSoft 404 detectedFIX
The server returned HTTP 200 for a non-existent path. Search engines will index this page as real content. Configure your server to return HTTP 404 for missing pages.
FWeb ManifestActionInvalid JSONFIX
Manifest contains invalid JSON.
DDark Mode SupportActionNo dark mode signalsFIX
Detection limited to meta tags and inline styles.
DPrint StylesheetActionNo print stylesFIX
BFavicon & Branding8 icon(s) detectedREVIEW
ALandmark Structure7 landmarksPASS
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
AHeading Hierarchy64 headingsPASS
- H1 The people platform.Where interestsbecome friendships.
- H1 The people platform.Where interestsbecome friendships.The people platform. Where interests become friendships. duplicate H1
- H2 Events near New York, NY
- H3 Wednesday Social Meetup Into Comedy Show!
- H3 Rust NYC: Formally Verified Rust & SAT Solvers
- H3 Bear Mountain Free hike!
- H3 BUILDING A CAREER THAT SURVIVES AI
- H3 Rust NYC x OpenAI: Safer 'unsafe' & Barnum: The agentic workflow engine.
- H3 NYC Tech Mixer 2026
- H3 🦜☕Saturday Language Exchange NYC Coffee Social
- H3 Media/Advertising Professionals Meet
- H3 Wednesday Social Meetup Into Comedy Show!
- H3 Rust NYC: Formally Verified Rust & SAT Solvers
- H3 Bear Mountain Free hike!
- H3 BUILDING A CAREER THAT SURVIVES AI
- H3 Rust NYC x OpenAI: Safer 'unsafe' & Barnum: The agentic workflow engine.
- H3 NYC Tech Mixer 2026
- H3 🦜☕Saturday Language Exchange NYC Coffee Social
- H3 Media/Advertising Professionals Meet
- H3 Wednesday Social Meetup Into Comedy Show!
- H3 Rust NYC: Formally Verified Rust & SAT Solvers
- H3 Bear Mountain Free hike!
- H3 BUILDING A CAREER THAT SURVIVES AI
- H3 Rust NYC x OpenAI: Safer 'unsafe' & Barnum: The agentic workflow engine.
- H3 NYC Tech Mixer 2026
- H3 🦜☕Saturday Language Exchange NYC Coffee Social
- H3 Media/Advertising Professionals Meet
- H2 Upcoming online events
- H3 Seed Builders Circle - Wednesday Morning Session
- H3 Why Motivation Fades and How to Build a Future That Pulls You Forward
- H3 The Blueprint to Dating in Midlife & Beyond
- H3 NEW YORK LIVE Walk: Wall Street and the Financial District
- H3 Seed Builders Circle - Wednesday Morning Session
- H3 Why Motivation Fades and How to Build a Future That Pulls You Forward
- H3 The Blueprint to Dating in Midlife & Beyond
- H3 NEW YORK LIVE Walk: Wall Street and the Financial District
- H3 Seed Builders Circle - Wednesday Morning Session
- H3 Why Motivation Fades and How to Build a Future That Pulls You Forward
- H3 The Blueprint to Dating in Midlife & Beyond
- H3 NEW YORK LIVE Walk: Wall Street and the Financial District
- H2 Join Meetup
- H2 Explore top categories
- H2 Popular cities on Meetup
- H3 New York
- H3 New York
- H3 San Francisco
- H3 San Francisco
- H3 Chicago
- H3 Chicago
- H3 Nashville
- H3 Nashville
- H3 Miami
- H3 Miami
- H2 How Meetup works
- H3 Discover events and groups
- H3 Find your people
- H3 Start a group to host events
- H3 Discover events and groups
- H3 Find your people
- H3 Start a group to host events
- H2 Friendships are made on Meetup
- H3 I used Meetup to make friends at brunch
- H3 How to turn casual connections into close friendships
- H3 Do you have the “right” number of friends?
A page should have only one H1. Multiple H1s dilute the document outline.
Multiple H1s blur the page's primary topic — screen-reader users and Google both prefer one H1.
Learn more ▾ ▴
HTML5's outline algorithm technically allows multiple H1s within sectioning content, but no browser implements it. In practice: one H1 per page. Use H2-H6 for subsections.
Source: WCAG 2.4.6 / Google Search Central
A+Alt Text QualityAll 197 images OKPASS
A+Form AccessibilityNo form controlsPASS
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 Events near | 20.48:1 | 3.0:1 | #000000 | #FCFCFD | Pass |
| h2 Upcoming online even… | 20.48:1 | 3.0:1 | #000000 | #FCFCFD | Pass |
| h2 Join Meetup | 20.48:1 | 3.0:1 | #000000 | #FCFCFD | Pass |
| h2 Explore top categori… | 20.48:1 | 3.0:1 | #000000 | #FCFCFD | Pass |
| h2 Popular cities on Me… | 20.48:1 | 3.0:1 | #000000 | #FCFCFD | Pass |
| h2 How Meetup works | 20.48:1 | 3.0:1 | #000000 | #FCFCFD | Pass |
| h2 Friendships are made… | 20.48:1 | 3.0:1 | #000000 | #FCFCFD | Pass |
| h3 Wednesday Social Mee… | 20.48:1 | 3.0:1 | #000000 | #FCFCFD | Pass |
| h3 Rust NYC: Formally V… | 20.48:1 | 3.0:1 | #000000 | #FCFCFD | Pass |
| h3 Bear Mountain Free h… | 20.48:1 | 3.0:1 | #000000 | #FCFCFD | Pass |
| h3 BUILDING A CAREER TH… | 20.48:1 | 3.0:1 | #000000 | #FCFCFD | Pass |
| h3 Rust NYC x OpenAI: S… | 20.48:1 | 3.0:1 | #000000 | #FCFCFD | Pass |
| h3 NYC Tech Mixer 2026 | 20.48:1 | 3.0:1 | #000000 | #FCFCFD | Pass |
| h3 🦜☕Saturday Lang… | 20.48:1 | 3.0:1 | #000000 | #FCFCFD | Pass |
| h3 Media/Advertising Pr… | 20.48:1 | 3.0:1 | #000000 | #FCFCFD | Pass |
| h3 Wednesday Social Mee… | 20.48:1 | 3.0:1 | #000000 | #FCFCFD | Pass |
| h3 Rust NYC: Formally V… | 20.48:1 | 3.0:1 | #000000 | #FCFCFD | Pass |
| h3 Bear Mountain Free h… | 20.48:1 | 3.0:1 | #000000 | #FCFCFD | Pass |
| h3 BUILDING A CAREER TH… | 20.48:1 | 3.0:1 | #000000 | #FCFCFD | Pass |
| h3 Rust NYC x OpenAI: S… | 20.48:1 | 3.0:1 | #000000 | #FCFCFD | 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.
ALighthouse Accessibility AuditsScore 91/100 — 3 failing, 24 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.
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.flex > div.flex > div.flex > button.inline-flex div.flex > div.flex > div.flex > button.inline-flex |
header#app-header > div.flex > div.flex > button.inline-flex header#app-header > div.flex > div.flex > button.inline-flex |
div.mb-ds2-28 > h2.ds2-b24 > div.inline-flex > button.relative div.mb-ds2-28 > h2.ds2-b24 > div.inline-flex > button.relative |
div.relative > div.absolute > div.opacity-100 > button.relative div.relative > div.absolute > div.opacity-100 > button.relative |
div.relative > div.absolute > div.opacity-100 > button.relative div.relative > div.absolute > div.opacity-100 > button.relative |
div.relative > div.absolute > div.opacity-100 > button.relative div.relative > div.absolute > div.opacity-100 > button.relative |
div.relative > div.absolute > div.opacity-100 > button.relative div.relative > div.absolute > div.opacity-100 > button.relative |
div.relative > div.absolute > div.opacity-100 > button.relative div.relative > div.absolute > div.opacity-100 > button.relative |
div.relative > div.absolute > div.opacity-100 > button.relative div.relative > div.absolute > div.opacity-100 > button.relative |
div.relative > div.absolute > div.opacity-100 > button.relative div.relative > div.absolute > div.opacity-100 > button.relative |
div.relative > div.absolute > div.opacity-100 > button.relative div.relative > div.absolute > div.opacity-100 > button.relative |
div.relative > div.absolute > div.opacity-100 > button.relative div.relative > div.absolute > div.opacity-100 > button.relative |
div.relative > div.absolute > div.opacity-100 > button.relative div.relative > div.absolute > div.opacity-100 > button.relative |
div.relative > div.absolute > div.opacity-100 > button.relative div.relative > div.absolute > div.opacity-100 > button.relative |
div.relative > div.absolute > div.opacity-100 > button.relative div.relative > div.absolute > div.opacity-100 > button.relative |
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 |
|---|
Search events... div.flex > div.flex > div.flex > span.ds2-r14 |
These are opportunities to improve the legibility of your content.
Visible text labels that do not match the accessible name can result in a confusing experience for screen reader users. Learn more about accessible names.
Performance issues directly impact user engagement and conversion rates.
| Failing Elements |
|---|
Download on
Google Play div.flex > div.flex > div.flex > a.flex |