But Why??

A presentation at EmberFest in in Dublin, Ireland by Melanie Sumner

But…why??

But…why??

Intro to Melanie

Intro to Melanie

So, why this talk?

So, why this talk?

accessible design system != accessible application

accessible design system != accessible application

Agenda

Agenda

Some Disclaimers

Some Disclaimers

Accessible Names

Accessible Names

Example UI: Adding integrations

Example UI: Adding integrations

Where this breaks for accessibility

Where this breaks for accessibility

Each link needs a unique accessible name

Each link needs a unique accessible name

What might this code look like?

What might this code look like?

Equally viable options to consider

Equally viable options to consider

What to do instead: the aria-label option

What to do instead: the aria-label option

What to do instead: the aria-labelledby option

What to do instead: the aria-labelledby option

Users can navigate by element groups

Users can navigate by element groups

Bonus Example: Accordion using aria-labelledby

Bonus Example: Accordion using aria-labelledby

DETOUR

DETOUR

The Accessible Name and Description Computation

The Accessible Name and Description Computation

Detour Agenda

Detour Agenda

3 things to know about this spec

3 things to know about this spec

AccName: Browser Instructions

AccName: Browser Instructions

AccName: Browser Exceptions

AccName: Browser Exceptions

AccName: Developer Guidance

AccName: Developer Guidance

AccDesc: Browser Instructions

AccDesc: Browser Instructions

AccDesc: Developer Guidance

AccDesc: Developer Guidance

End Detour

End Detour

Headings, Labels, and Instructions

Headings, Labels, and Instructions

Headings

Headings

Headings TL;DR

Headings TL;DR

If it looks like a heading, and acts like a heading…

If it looks like a heading, and acts like a heading…

…but doesnʼt sound like a heading… 31

…but doesnʼt sound like a heading… 31

…then itʼs not a heading, itʼs an #a11yFail

…then itʼs not a heading, itʼs an #a11yFail

Why headings matter

Why headings matter

Headings: What to do instead

Headings: What to do instead

Labels

Labels

Label requirements

Label requirements

Label Example #1

Label Example #1

Label Example #2

Label Example #2

Label Example #3

Label Example #3

Labels: What to do instead

Labels: What to do instead

Bonus: helpful cat lady

Bonus: helpful cat lady

Instructions

Instructions

Instructions example: delete confirmation modal

Instructions example: delete confirmation modal

Whatʼs wrong with this picture?

Whatʼs wrong with this picture?

A note about uppercase

A note about uppercase

What to do instead: improved instructions

What to do instead: improved instructions

Reflow, Resize, Space

Reflow, Resize, Space

We don't support mobile, they say...

We don't support mobile, they say...

What weʼre trying to do... What are our desired outcomes for the user?

What weʼre trying to do... What are our desired outcomes for the user?

Incorrect Reflow example (before zoom)

Incorrect Reflow example (before zoom)

Incorrect Reflow example (after zoom)

Incorrect Reflow example (after zoom)

Correct Reflow example (before zoom)

Correct Reflow example (before zoom)

Correct Reflow example (after zoom)

Correct Reflow example (after zoom)

Text Spacing example (before)

Text Spacing example (before)

Text Spacing example (after)

Text Spacing example (after)

Spacing text

Spacing text

What to do instead for reflow, text-resizing, and text-spacing

What to do instead for reflow, text-resizing, and text-spacing

Takeaway

Takeaway

Putting it all together

Putting it all together

WCAG is the bare minimum

WCAG is the bare minimum

What are we really trying to do here?

What are we really trying to do here?

Internal Requirements

Internal Requirements

Be a little selfish

Be a little selfish

As front-end developers…

As front-end developers…

In Closing...

In Closing...

A look at common patterns found on the web, how they are harmful for accessibility, and what to do instead.