Accessibility
· 13 checks — Landmarks, headings, alt text, forms, and link quality rolled into one auditable list.FLink & Button QualityAction153 issue(s) across 562 links and 111 buttonsFIX
| Element | Text | Issue | Suggested Fix |
|---|---|---|---|
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| /register/ | here | generic text | Replace with descriptive text |
Before: here Suggested: Register | |||
| https://vancouversun.com/news/canada/pak… | (empty) | empty | Add link text or aria-label |
| https://vancouversun.com/news/canada/tor… | (empty) | empty | Add link text or aria-label |
| https://www.mnbasd77.com/aff_c | (empty) | empty | Add link text or aria-label |
| https://www.mnbasd77.com/aff_c | HomebuddyHere's The Estimated … | new tab | Add '(opens in new tab)' to text |
| https://vancouversun.com/news/true-crime… | (empty) | empty | Add link text or aria-label |
| https://vancouversun.com/news/canada/b-c… | (empty) | empty | Add link text or aria-label |
| https://www.lacompagnie.com/en/booking/p… | (empty) | empty | Add link text or aria-label |
| https://popup.taboola.com/en/?template=c… | Sponsored: learn about this re… | new tab | Add '(opens in new tab)' to text |
| https://popup.taboola.com/en/?template=c… | Sponsored: learn about this re… | new tab | Add '(opens in new tab)' to text |
| https://www.lacompagnie.com/en/booking/p… | (empty) | empty | Add link text or aria-label |
| https://popup.taboola.com/en/?template=c… | Sponsored: learn about this re… | new tab | Add '(opens in new tab)' to text |
| https://popup.taboola.com/en/?template=c… | Sponsored: learn about this re… | new tab | Add '(opens in new tab)' to text |
| https://vancouversun.com/news/canada/b-c… | (empty) | empty | Add link text or aria-label |
| https://govplus.com/solutions/passport | (empty) | empty | Add link text or aria-label |
| https://popup.taboola.com/en/?template=c… | Sponsored: learn about this re… | new tab | Add '(opens in new tab)' to text |
| https://popup.taboola.com/en/?template=c… | Sponsored: learn about this re… | new tab | Add '(opens in new tab)' to text |
| https://www.people.com/featured/original… | (empty) | empty | Add link text or aria-label |
| https://popup.taboola.com/en/?template=c… | Sponsored: learn about this re… | new tab | Add '(opens in new tab)' to text |
| https://popup.taboola.com/en/?template=c… | Sponsored: learn about this re… | new tab | Add '(opens in new tab)' to text |
| https://www.travelandleisure.com/feature… | (empty) | empty | Add link text or aria-label |
| https://popup.taboola.com/en/?template=c… | Sponsored: learn about this re… | new tab | Add '(opens in new tab)' to text |
| https://popup.taboola.com/en/?template=c… | Sponsored: learn about this re… | new tab | Add '(opens in new tab)' to text |
| https://vancouversun.com/news/this-day-h… | (empty) | empty | Add link text or aria-label |
| https://goto.stockstreetnews.com/AMQ-302… | (empty) | empty | Add link text or aria-label |
| https://popup.taboola.com/en/?template=c… | Sponsored: learn about this re… | new tab | Add '(opens in new tab)' to text |
| https://popup.taboola.com/en/?template=c… | Sponsored: learn about this re… | new tab | Add '(opens in new tab)' to text |
| https://vancouversun.com/news/canada/can… | (empty) | empty | Add link text or aria-label |
| https://vancouversun.com/news/bc-man-sue… | (empty) | empty | Add link text or aria-label |
| https://goto.stockstreetnews.com/AMQ-302… | (empty) | empty | Add link text or aria-label |
| https://popup.taboola.com/en/?template=c… | Sponsored: learn about this re… | new tab | Add '(opens in new tab)' to text |
| https://popup.taboola.com/en/?template=c… | Sponsored: learn about this re… | new tab | Add '(opens in new tab)' to text |
| https://canoe.com/buy-canadian/best-cana… | MOST POPULAR | new tab | Add '(opens in new tab)' to text |
| https://canoe.com/buy-canadian/best-cana… | Best Canadian shoe brands: Win… | new tab | Add '(opens in new tab)' to text |
| https://www.metalroofnation.com/lp | (empty) | empty | Add link text or aria-label |
| https://popup.taboola.com/en/?template=c… | Sponsored: learn about this re… | new tab | Add '(opens in new tab)' to text |
| https://popup.taboola.com/en/?template=c… | Sponsored: learn about this re… | 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 |
| <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 |
| <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 |
Links without text are announced as raw URLs by screen readers.
https://vancouversun.com/news/canada/pakistani-man-who-came-to-canada-on-a-st…; https://vancouversun.com/news/canada/toronto-man-found-not-criminally-respons…; https://www.mnbasd77.com/aff_c; https://vancouversun.com/news/true-crime/canadian-organizer-of-notorious-coca…; https://vancouversun.com/news/canada/b-c-woman-who-flew-to-south-korea-for-lo…; https://www.lacompagnie.com/en/booking/promo-new-york-europe; https://www.lacompagnie.com/en/booking/promo-new-york-europe; https://vancouversun.com/news/canada/b-c-indigenous-man-sentencing-choking-ki…; https://govplus.com/solutions/passport; https://www.people.com/featured/original/a-full-day-in-my-life-as-a-working-m… (+7 more)
Links with no accessible text (empty <a></a>, image-only no alt, icon-only no aria-label) are unidentifiable to screen readers.
Source: WCAG 2.1 SC 2.4.4
Generic link text like 'click here' doesn't describe the destination.
/register/ ("here"); /register/ ("here"); /register/ ("here"); /register/ ("here"); /register/ ("here"); /register/ ("here"); /register/ ("here"); /register/ ("here"); /register/ ("here"); /register/ ("here") (+35 more)
Generic anchor text ('click here', 'read more', 'learn more') tells screen readers and search engines nothing about the destination.
Learn more ▾ ▴
Out-of-context lists of links read by AT (one navigation pattern) become useless when every link says 'click here'. Use the destination's title or topic as anchor text. Doubles as SEO win — Google passes anchor-text relevance to the destination.
Source: WCAG 2.4.4 / Google Search Central
Add '(opens in new tab)' to link text or aria-label.
https://www.mnbasd77.com/aff_c; https://popup.taboola.com/en/?template=colorbox&utm_source=postmedia-vancouve…; https://popup.taboola.com/en/?template=colorbox&utm_source=postmedia-vancouve…; https://popup.taboola.com/en/?template=colorbox&utm_source=postmedia-vancouve…; https://popup.taboola.com/en/?template=colorbox&utm_source=postmedia-vancouve…; https://popup.taboola.com/en/?template=colorbox&utm_source=postmedia-vancouve…; https://popup.taboola.com/en/?template=colorbox&utm_source=postmedia-vancouve…; https://popup.taboola.com/en/?template=colorbox&utm_source=postmedia-vancouve…; https://popup.taboola.com/en/?template=colorbox&utm_source=postmedia-vancouve…; https://popup.taboola.com/en/?template=colorbox&utm_source=postmedia-vancouve… (+9 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.popover__trigger (#1102 on page); button.popover__content__close (#1113 on page); button.popover__trigger (#1167 on page); button.popover__content__close (#1178 on page); button.popover__trigger (#1208 on page); button.popover__content__close (#1219 on page); button.popover__trigger (#1253 on page); button.popover__content__close (#1264 on page); button.popover__trigger (#1299 on page); button.popover__content__close (#1310 on page) (+81 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
DWeb ManifestActionNot foundFIX
No web manifest found.
DDark Mode SupportActionNo dark mode signalsFIX
Detection limited to meta tags and inline styles.
DPrint StylesheetActionNo print stylesFIX
B404 Error PageHTTP 404, custom pageREVIEW
CFavicon & BrandingAction11 icon(s) detectedREVIEW
BLighthouse Accessibility AuditsScore 86/100 — 5 failing, 28 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.
ARIA
ARIA dialog elements without accessible names may prevent screen readers users from discerning the purpose of these elements. Learn how to make ARIA dialog elements more accessible.
Informational: a Permissions-Policy directive showing feature -> allowed origins.
Source: MDN Permissions-Policy
| Failing Elements |
|---|
SUBSCRIBE body.breaking > section#sailthru-overlay-container |
These are opportunities to improve the usage of ARIA in your application which may enhance the experience for users of assistive technology, like a screen reader.
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 |
|---|
body.breaking > section#sailthru-overlay-container > div.sailthru-overlay > button.sailthru-overlay-close body.breaking > section#sailthru-overlay-container > div.sailthru-overlay > button.sailthru-overlay-close |
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 |
|---|
Intuit Credit Karma in Taboola advertising section a.item-label-href > span.video-label-box > span.branding > span.branding-inner |
span.branding > div.logoDiv > a.trc_mobile_disclosure_link > span span.branding > div.logoDiv > a.trc_mobile_disclosure_link > span |
Intuit Credit Karma in Taboola advertising section a.item-label-href > span.video-label-box > span.branding > span.branding-inner |
span.branding > div.logoDiv > a.trc_mobile_disclosure_link > span span.branding > div.logoDiv > a.trc_mobile_disclosure_link > span |
Vancouver Sun in Taboola advertising section div.videoCube > a.item-label-href > span.video-label-box > span.branding |
Forbes in Taboola advertising section a.item-label-href > span.video-label-box > span.branding > span.branding-inner |
span.branding > div.logoDiv > a.trc_mobile_disclosure_link > span span.branding > div.logoDiv > a.trc_mobile_disclosure_link > span |
NerdWallet in Taboola advertising section a.item-label-href > span.video-label-box > span.branding > span.branding-inner |
span.branding > div.logoDiv > a.trc_mobile_disclosure_link > span span.branding > div.logoDiv > a.trc_mobile_disclosure_link > span |
OTTO Insurance in Taboola advertising section a.item-label-href > span.video-label-box > span.branding > span.branding-inner |
span.branding > div.logoDiv > a.trc_mobile_disclosure_link > span span.branding > div.logoDiv > a.trc_mobile_disclosure_link > span |
Vancouver Sun in Taboola advertising section div.videoCube > a.item-label-href > span.video-label-box > span.branding |
span.branding > div.logoDiv > a.trc_mobile_disclosure_link > span span.branding > div.logoDiv > a.trc_mobile_disclosure_link > span |
These are opportunities to improve the legibility of your content.
Best practices
Touch targets with sufficient size and spacing help users who may have difficulty targeting small controls to activate the targets. Learn more about touch targets.
Performance issues directly impact user engagement and conversion rates.
| Failing Elements |
|---|
Sponsored: learn about this recommendation (opens dialog) span.video-label-box > span.branding > div.logoDiv > a.trc_mobile_disclosure_link |
Sponsored: learn about this recommendation (opens dialog) span.video-label-box > span.branding > div.logoDiv > a.trc_mobile_disclosure_link |
Sponsored: learn about this recommendation (opens dialog) span.video-label-box > span.branding > div.logoDiv > a.trc_mobile_disclosure_link |
Sponsored: learn about this recommendation (opens dialog) span.video-label-box > span.branding > div.logoDiv > a.trc_mobile_disclosure_link |
Sponsored: learn about this recommendation (opens dialog) span.video-label-box > span.branding > div.logoDiv > a.trc_mobile_disclosure_link |
Sponsored: learn about this recommendation (opens dialog) span.video-label-box > span.branding > div.logoDiv > a.trc_mobile_disclosure_link |
These items highlight common accessibility best practices.
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 |
|---|
This Vancouver park board manager transformed a boring concession stand into a … article.article-card > div.article-card__content > div.article-card__details > a.article-card__link |
Eat Streets: Vancouver's Yaletown a place to eat, drink, and 'to see and be see… article.article-card > div.article-card__content > div.article-card__details > a.article-card__link |
Coast Appliances files for creditor protection, cites slowdown in residential c… article.article-card > div.article-card__content > div.article-card__details > a.article-card__link |
Michelin-recommended Vancouver Thai restaurant gets a sibling
Charm Thai resta… article.article-card > div.article-card__content > div.article-card__details > a.article-card__link |
A+Landmark Structure34 landmarksPASS
A+Heading Hierarchy77 headingsPASS
- H1 Home | Vancouver Sun
- H2 Trending Topics
- H3 This Vancouver park board manager transformed a boring concession stand into a lively destination patio. Then he was laid off
- H3 Surrey school district superintendent highest paid in B.C., earning more than $500,000
- H3 Gangster Jamie Bacon, convicted in Surrey Six murders, released from prison
- H3 Eat Streets: Vancouver's Yaletown a place to eat, drink, and 'to see and be seen'
- H3 B.C. car dealers report rebound in interest for EVs as gas hovers near $2 a litre
- H3 Coast Appliances files for creditor protection, cites slowdown in residential construction
- H3 Vaughn Palmer: Did Premier David Eby have an ulterior motive in thanking his attorney general?
- H3 Michelin-recommended Vancouver Thai restaurant gets a sibling
- H3 B.C. man sues A&E TV network, ex-wife for defamation over Secrets of Hells Angels series
- H3 'Substantial unpermitted work': Surrey continues crackdown on illegal construction
- H2 News
- H3 Surrey police investigating early morning extortion-related shooting
- H3 Chinese police officers went missing during high-security Vancouver trip, court hears
- H3 B.C. teacher fired, licence suspended over inappropriate student interactions and sick-leave fraud
- H3 Grass doesn't pass: Guards find 'cleverly disguised' contraband meant for B.C. prison
- H3 World Cup games to have largest police deployment in Vancouver's history
- H3 Gangster Jamie Bacon, convicted in Surrey Six murders, released from prison
- H3 Chinese police officers went missing during high-security Vancouver trip, court hears
- H3 Surrey school district superintendent highest paid in B.C., earning more than $500,000
- H3 Coast Appliances files for creditor protection, cites slowdown in residential construction
- H3 This Vancouver park board manager transformed a boring concession stand into a lively destination patio. Then he was laid off
- H2 Epaper Edition
- H2 LOCAL SPOTLIGHT
- H2 Sports
- H3 Vancouver Goldeneyes showing character with gutsy wins late in inaugural season
- H3 Vancouver Goldeneyes hold on for 4-3 win over Montreal Victoire
- H3 Are the Canucks even asking the right questions in their GM search?
- H3 Canucks: Marc Bergevin brings experience, roster expertise, humour to GM bid
- H3 World Cup 2026: More last-minute tickets for all matches on sale Wednesday
- H2 Entertainment
- H3 Cash Cab guy's turn to answer questions
- H3 Diljit Dosanjh in Vancouver: What to know before you go
- H3 Seth Rogen's cannabis company cooks up new colab
- H3 Freedom Mobile Arch Amphitheatre: What to know about this Vancouver entertainment venue
- H3 Vancouver Island singer tours Canada in a vegetable-oil-powered bus
- H2 weather (Vancouver)
- H2 Canadian Tire
- H2 Life
- H3 Recipe: Butter chicken meatballs, a classic reinvented for busy weeknight meals
- H3 These are the 5 must-have skin care products for spring
- H3 These are the 3 best beauty products we tried this week
- H3 Field of dreams: The turf that will be B.C. Place's verdant green World Cup centrepiece
- H3 Concert review: Journey bids Vancouver fans a fine Final Farewell at Pacific Coliseum
- H2 Opinion
- H3 Opinion: Are we doing enough to make sure World Cup visitors leave with the best possible impression of our city and province?
- H3 Douglas Todd: In South Delta, at least, you can fight city hall — and stop highrises
- H3 Vaughn Palmer: B.C. Premier David Eby has learned he is not in charge
- H3 Pete McMartin: How I got up off the couch and survived the Sun Run
- H3 Pete McMartin: I waited. One hour. Two hours. My night in an ER waiting room
- H2 Business
- H3 Should there be a consumer advocate for B.C. Ferries? And why is a bridge to Vancouver Island not feasible?
- H3 Here are the highest-paid City of Vancouver employees, according to the 2025 salaries report
- H3 Delta company opens lithium refining plant with first-in-North-America technology
- H3 U.S. court turns down B.C. mine's push to increase selenium levels in border lake pollution dispute
- H3 Sold Bought: Upgrades and versatile layout draw strong interest in Richmond home
- H2 Homes
- H3 Condo Smarts: Who's on the hook for faulty heat pump installation?
- H3 See how a $2,500 gym shed project created a fresh home fitness space
- H3 How to make best use of the space in your vegetable garden
- H3 Brian Minter: Want an early veggie crop? Here's what you can plant now in Metro Vancouver
- H3 Yaletown condo transformed into a Vegas-inspired retreat that radiates character
- H2 Healthing
- H3 Can you detox from plastic? The reality of harmful chemicals at every turn
- H3 Serotonin tinnitus severity study opens the door for more precise treatment using SSRIs
- H3 What is food noise? Inside the cravings and intrusive thoughts that are impossible to ignore
- H3 MasterChef Canada's Marissa Leon-John cooking simple and fabulous food for people with diabetes
- H3 Behind the Scenes: The role of the hospital board of directors
- H2 Driving
- H3 BMW's new 7 Series sedan debuts as an all-electric
- H3 ChargePoint adds a new 600kW charger to its portfolio
- H3 EVs powered by Horse? Of course!
- H3 2027 Chrysler Pacifica price cut by up to $7,200, starts at $52,995 in Canada
- H3 Ducati North America CEO races a 1971 450 R/T Desmo at Biltwell 100
- H2 You've reached the 20 article limit.
- H2 Looks like you've reached your saved article limit!
AAlt Text QualityAll 88 images OKPASS
| Issue | Count |
|---|---|
| too long | 6 image(s) |
A+Form AccessibilityAll 3 controls labeledPASS
| Control | Type | Label | Method |
|---|---|---|---|
| #id_search_text | input | Search vancouversun.com | for/id |
| #id_search_text_top | input | Search vancouversun.com | for/id |
| #emailVS_Sunrise | Email Address | aria-label |
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 Home | Vancouver Sun | 16.20:1 | 3.0:1 | #000000 | #EBE0D9 | Pass |
| h2 Trending Topics | 16.20:1 | 3.0:1 | #000000 | #EBE0D9 | Pass |
| h2 Epaper Edition | 16.20:1 | 3.0:1 | #000000 | #EBE0D9 | Pass |
| h2 LOCAL SPOTLIGHT | 16.20:1 | 3.0:1 | #000000 | #EBE0D9 | Pass |
| h2 weather (Vancouver) | 16.20:1 | 3.0:1 | #000000 | #EBE0D9 | Pass |
| h2 Canadian Tire | 16.20:1 | 3.0:1 | #000000 | #EBE0D9 | Pass |
| h2 You've reached the 2… | 16.20:1 | 3.0:1 | #000000 | #EBE0D9 | Pass |
| h2 Looks like you've re… | 16.20:1 | 3.0:1 | #000000 | #EBE0D9 | Pass |
| title Home | Vancouver Sun | 15.95:1 | 4.5:1 | #000000 | #CCE4F2 | Pass |
| div Advertisement oop | 17.86:1 | 4.5:1 | #000000 | #E0EFF7 | Pass |
| div Stories continue bel… | 21.00:1 | 4.5:1 | #000000 | #FFFFFF | Pass |
| div This advertisement h… | 21.00:1 | 4.5:1 | #000000 | #FFFFFF | Pass |
| a Skip to Content | 21.00:1 | 4.5:1 | #000000 | #FFFFFF | Pass |
| strong EAT STREETS: Enter t… | 19.60:1 | 3.0:1 | #000000 | #F7F7F7 | Pass |
| span Click here >> | 19.60:1 | 4.5:1 | #000000 | #F7F7F7 | Pass |
| strong EAT STREETS: Enter t… | 19.60:1 | 3.0:1 | #000000 | #F7F7F7 | Pass |
| span Click here >> | 19.95:1 | 4.5:1 | #000000 | #F9F9F9 | Pass |
| span Sections | 21.00:1 | 4.5:1 | #000000 | #FFFFFF | Pass |
| span Search | 8.33:1 | 4.5:1 | #000000 | #A3A3A3 | Pass |
| label Search vancouversun.… | 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.