Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston...

127
Designing for Inclusion with Media Queries Boston CSS August 16, 2017

Transcript of Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston...

Page 1: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

Designing for Inclusion with Media QueriesBoston CSS August 16, 2017

Page 2: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.
Page 3: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.
Page 4: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

?

Page 5: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

Level setting

Page 6: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

What is the web?

Page 7: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

HTML JS

CSS

Page 8: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

HTML JS

CSS

Page 9: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

HTMLdescribes meaning

Page 10: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

JavaScriptadds behavior

Page 11: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

CSScreates priority

Page 12: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

What is compliance?

Page 13: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

Responsive Design is adapting design to an unknown browser.

You don’t make an assumption about where it will be accessed.

Page 14: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

Inclusive Design is adapting design to an unknown user.

You don’t make an assumption about who will use it.

Page 15: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

What is a browser?

Page 16: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.
Page 17: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.
Page 18: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.
Page 19: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.
Page 20: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.
Page 21: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.
Page 22: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.
Page 23: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.
Page 24: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.
Page 25: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.
Page 26: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.
Page 27: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.
Page 28: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.
Page 29: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.
Page 30: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.
Page 31: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.
Page 32: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.
Page 33: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

How does CSS fit in?

Page 34: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

Media Queries describe meaning in context

Page 35: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

The basics

Page 36: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

The absence of support for media queries is in fact the first media query.

—Bryan Rieger

Page 37: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.
Page 38: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.
Page 39: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.
Page 40: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.
Page 41: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.
Page 42: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.
Page 43: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

Disabilities

Page 44: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

Disabilities

Cognitive

Physical

Page 45: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

Disabilities

Cognitive

Physical

Page 46: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

When any device’s viewport reaches a minimum width of 30 ems, do the following:

Page 47: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

@media (min-width: 30em) { … }

Media Rule keyword

Media Feature Selectors and declarations

Page 48: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

@media (min-width: 30em) { … }

Media Rule keyword

Media Feature Selectors and declarations

Why ems?

Page 49: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

When a device with a screen’s viewport reaches a

minimum width of 30 ems, do the following:

Page 50: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

@media

screen

and (min-width: 30em) { … }

Media Type

Media Rule keyword

Media Feature Selectors and declarations

Page 51: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

all

aural

braille

embossed

handheld

print

projection

screen

speech

tty

tv

All media type devices

Speech and sound synthesizers

Braille tactile feedback devices

Paged braille printers

Small or handheld devices

Printers

Projected presentations

Computer screens

Speech synthesizers

Teletypes and terminals

Television-type devices

Page 52: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

all

aural

braille

embossed

handheld

print

projection

screen

speech

tty

tv

All media type devices

Speech and sound synthesizers

Braille tactile feedback devices

Paged braille printers

Small or handheld devices

Printers

Projected presentations

Computer screens

Speech synthesizers

Teletypes and terminals

Television-type devices

Page 53: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

all

aural

braille

embossed

handheld

print

projection

screen

speech

tty

tv

All media type devices

Speech and sound synthesizers

Braille tactile feedback devices

Paged braille printers

Small or handheld devices

Printers

Projected presentations

Computer screens

Speech synthesizers

Teletypes and terminals

Television-type devices

Page 54: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

all

aural

braille

embossed

handheld

print

projection

screen

speech

tty

tv

All media type devices

Speech and sound synthesizers

Braille tactile feedback devices

Paged braille printers

Small or handheld devices

Printers

Projected presentations

Computer screens

Speech synthesizers

Teletypes and terminals

Television-type devices

Page 55: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

all

aural

braille

embossed

handheld

print

projection

screen

speech

tty

tv

All media type devices

Speech and sound synthesizers

Braille tactile feedback devices

Paged braille printers

Small or handheld devices

Printers

Projected presentations

Computer screens

Speech synthesizers

Teletypes and terminals

Television-type devices

Page 56: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

all

aural

braille

embossed

handheld

print

projection

screen

speech

tty

tv

All media type devices

Speech and sound synthesizers

Braille tactile feedback devices

Paged braille printers

Small or handheld devices

Printers

Projected presentations

Computer screens

Speech synthesizers

Teletypes and terminals

Television-type devices

Page 57: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

width and height

Page 58: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

height

width

aspect-ratio

color

color-index

grid

monochrome

orientation

resolution

scan

Height of the target media

Width of the target media

Ratio between the viewport’s height and width

The presence of color

Number of entries in the color look-up table

The device is a grid device (TTY terminal, etc.)

Uses shades of a single color

Landscape or portrait

Display density (DPI, DPCM, etc.)

Type of scanning process (ex: progressive)

Page 59: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

device-aspect-ratio

device-height

device-width

Deprecated

Page 60: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

Logic

Page 61: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

@media (min-width: 30em) { … }

if

Page 62: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

@media

screen

and (min-height: 20em)

and (min-width: 30em) { … }

and

Page 63: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

@media

(max-width: 10em),

(min-width: 20em) { … }

or

Page 64: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

@media

not monochrome

and (max-width: 10em) { … }

not

Page 65: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

.theme-background {

background: linear-gradient(to bottom, #FF9900 0%, #FFFFFF 100%);

}

@media (grid) {

.theme-background {

img {

display: none;

}

}

}

@media

print,

monochrome {

.theme-background {

background: transparent;

}

}

Page 66: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

Using them

Page 67: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

Don’t go overboard

Treat layout as an enhancement

Let content determine breakpoints

Page 68: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

.c-component {

color: #000000 ;

}

@supports (background-blend-mode: multiply) {

.c-component {

color: #FFFFFF ;

}

}

Page 69: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

.c-component {

color: #000000 ;

}

@supports (background-blend-mode: multiply) {

.c-component {

color: #FFFFFF ;

}

}

Page 70: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

.c-component {

color: #000000 ;

}

@supports (background-blend-mode: multiply) {

.c-component {

color: #FFFFFF ;

}

}

Page 71: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

.c-component {

background: linear-gradient(to bottom, #FF9900 0%, #FFFFFF 100%);

display: block;

@supports (display: flex) {

display: flex;

}

@media (grid) {

img {

display: none;

}

}

@media

print, monochrome {

background: transparent;

}

}

Page 72: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

.c-component {

background: linear-gradient(to bottom, #FF9900 0%, #FFFFFF 100%);

display: block;

@supports (display: flex) {

display: flex;

}

@media (grid) {

img {

display: none;

}

}

@media

print, monochrome {

background: transparent;

}

}

Page 73: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

The Obscure Stuff

Page 74: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.
Page 75: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.
Page 76: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

button svg {

fill: #B8E986;

}

@media (-ms-high-contrast: active) {

button svg {

fill: buttonFace;

}

}

Page 77: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

windowText

<a>

highlightText & highlight

buttonFace

window

Text

Links

Selected text

Button label

Background

Page 78: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.
Page 79: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

.background {

animation-name: zoom-and-pan;

}

@media (prefers-reduced-motion) {

.background {

animation: none;

}

}

Page 80: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.
Page 81: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

The Future

Page 82: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

Color Gamut

Page 83: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

interaction

Page 84: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

/* A pointing device with limited accuracy */

@media (pointer: coarse) { … }

/* An accurate pointing device */

@media (pointer: fine) { … }

/* No pointing device */

@media (pointer: none) { … }

Page 85: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

/* A pointing device with limited accuracy */

@media (pointer: coarse) { … }

/* An accurate pointing device */

@media (pointer: fine) { … }

/* No pointing device */

@media (pointer: none) { … }

Page 86: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

/* No hover support */

@media (hover: none) { … }

/* Device supports hovering */

@media (hover: hover) { … }

/* Device can emulate hover (i.e. long press) */

@media (hover: on-demand) { … }

Page 87: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

/* No hover support */

@media (hover: none) { … }

/* Device supports hovering */

@media (hover: hover) { … }

/* Device can emulate hover (i.e. long press) */

@media (hover: on-demand) { … }

Page 88: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

display

Page 89: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

/* Normal browser appearance (tabs and other UI chrome) */

@media (display-mode: browser) { … }

/* Browser viewport uses all available space, no UI chrome */

@media (display-mode: fullscreen) { … }

/* Browser will behave like a native app */

@media (display-mode: minimal-ui) { … }

/* Will behave like a native app, with some minor exceptions */

@media (display-mode: standalone) { … }

Page 90: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

/* Display updates infrequently */

@media (update: slow) { … }

/* Display updates frequently */

@media (update: fast) { … }

/* No update frequency info transmitted */

@media (update: none) { … }

Page 91: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

Mobile First

Andres Galante

Small, Portrait, Slow, Interlace, Monochrome,

Coarse, Non-Hover

Page 92: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

light-level

Page 93: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

@media (light-level: normal) { … }

dim

washed

Page 94: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

The device is used in a environment with a light level in the ideal range for the screen, and which does not necessitate any particular adjustment.

The device is used in a dim environment, where excessive contrast and brightness would be distracting or uncomfortable to the reader. For example: night time, or a dimly illuminated indoor environment.

The device is used in an exceptionally bright environment, causing the screen to be washed out and difficult to read. For example: bright daylight.

normal

dim

washed

Page 95: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

scripting

Page 96: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

@media (scripting: enabled) { … }

none

initial-only

Page 97: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

initial-only

Indicates that scripting is enabled during the initial page load, but is not supported afterwards. Examples are printed pages, or pre-rendering network proxies that render a page on a server and send a nearly-static version of the page to the user.”

Page 98: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

initial-only

Indicates that scripting is enabled during the initial page load, but is not supported afterwards. Examples are printed pages, or pre-rendering network proxies that render a page on a server and send a nearly-static version of the page to the user.”

H O T D R A M A !

Page 99: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

inverted-colors

Page 100: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

@media (inverted-colors) {

img,

video {

filter: invert(100%);

}

}

Page 101: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

@media (inverted-colors) {

img,

video {

filter: invert(100%);

}

}

Page 102: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

@media (prefers-reduced-motion) { … }

Page 103: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

Custom

Page 104: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

:root {

}My cool

webpage!

Page 105: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

:root {

}

--brand-primary: #B300CC ;

--brand-secondary: #FFDE00 ;

My cool webpage!

Page 106: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

:root {

}

--brand-primary: #B300CC ;

--brand-secondary: #FFDE00 ;

My cool webpage!

body {

background-color: var(--brand-secondary);

color: var(--brand-primary);

}

My cool webpage!

Page 107: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

var themeStyles = document.body.style;

themeStyles.setProperty(

'--brand-primary', '#FFDE00'

);

themeStyles.setProperty(

'--brand-secondary', '#B300CC'

);

My cool webpage!My cool

webpage!My cool

webpage!My cool

webpage!

Invert Theme

My cool webpage!

Invert Theme

Page 108: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

var themeStyles = document.body.style;

themeStyles.setProperty(

'--brand-primary', '#FFDE00'

);

themeStyles.setProperty(

'--brand-secondary', '#B300CC'

);

My cool webpage!My cool

webpage!

Page 109: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

var themeStyles = document.body.style;

themeStyles.setProperty(

'--brand-primary', '#FFDE00'

);

themeStyles.setProperty(

'--brand-secondary', '#B300CC'

);

My cool webpage!My cool

webpage!My cool

webpage!My cool

webpage!

Page 110: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

var themeStyles = document.body.style;

themeStyles.setProperty(

'--brand-primary', '#FFDE00'

);

themeStyles.setProperty(

'--brand-secondary', '#B300CC'

);

My cool webpage!My cool

webpage!My cool

webpage!My cool

webpage!

Invert Theme

Page 111: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

var themeStyles = document.body.style;

themeStyles.setProperty(

'--brand-primary', '#FFDE00'

);

themeStyles.setProperty(

'--brand-secondary', '#B300CC'

);

My cool webpage!My cool

webpage!My cool

webpage!My cool

webpage!

Invert Theme

My cool webpage!

Invert Theme

Page 112: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

var themeStyles = document.body.style;

themeStyles.setProperty(

'--brand-primary', '#FFDE00'

);

themeStyles.setProperty(

'--brand-secondary', '#B300CC'

);

My cool webpage!My cool

webpage!My cool

webpage!My cool

webpage!

Invert Theme

Page 113: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

@custom-media --custom-bp (property: value);

@media (--custom-bp) { … }

@media (--custom-bp) { … }

My cool webpage!

Page 114: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

@custom-media --custom-bp (property: value);

@media (--custom-bp) { … }

@media (--custom-bp) { … }

My cool webpage!

Page 115: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

@custom-media --custom-bp (property: value);

@media (--custom-bp) { … }

@media (--custom-bp) { … }

My cool webpage!

Page 116: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

@custom-media --custom-bp (property: value);

@media (--custom-bp) { … }

@media (--custom-bp) { … }

My cool webpage!

Page 117: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

@custom-media --custom-bp (property: value);

@media (--custom-bp) { … }

@media (--custom-bp) { … }

My cool webpage!

Page 118: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

Thanks!

Page 119: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

ericwbailey.designericwbailey

most places (but mostly Twitter)

Page 120: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

WebAIM: Articleshttp://webaim.org/articles/

Accessibility is about people, not standards - Part of a wholehttp://incl.ca/accessibility-people-not-standards/

Think you know the top web browsers? - Samsung Internet Developershttps://medium.com/samsung-internet-dev/think-you-know-the-top-web-browsers-458a0a070175

alrra/browser-logoshttps://github.com/alrra/browser-logos/tree/master/src

References and Resources

Page 121: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

Micah Godbolt on Twitter: “Writing correct CSS once is pretty easy. Makin…”https://twitter.com/micahgodbolt/status/864260989629353985

Rethinking the Mobile Web by Yiibuhttps://www.slideshare.net/bryanrieger/rethinking-the-mobile-web-by-yiibu

Your Body Text Is Too Small - Marvel Bloghttps://blog.marvelapp.com/body-text-small/

A Summer Designing for Autismhttps://medium.com/google-design/a-summer-designing-for-autism-5859f8096b0b

Generation uX – how to make websites age-friendly | Be Good To Your Usershttp://whatusersdo.com/blog/make-websites-age-friendly/

Page 122: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

What I've learned about motor impairment | SimplePrimatehttp://simpleprimate.com/blog/motor

PX, EM or REM Media Querieshttps://zellwk.com/blog/media-query-units/

The EMs have it: Proportional Media Queries FTW! - Cloud Fourhttps://cloudfour.com/thinks/the-ems-have-it-proportional-media-queries-ftw/

Media Queries Level 4: 9. Appendix A: Deprecated Media Featureshttps://www.w3.org/TR/mediaqueries-4/#mf-deprecated

Logic in Media Queries | CSS Trickshttps://css-tricks.com/logic-in-media-queries/

Page 123: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

Size Calculatorhttps://sizecalc.com/

Using media queries | MDNhttps://developer.mozilla.org/en-US/docs/Web/CSS/Media_Queries/Using_media_queries

James Kyle on Twitter: “The biggest thing that breaks down CSS…”https://twitter.com/thejameskyle/status/861539784312840192

Media Type Exampleshttps://storify.com/ericwbailey/media-type-examples

@media - CSS | MDNhttps://developer.mozilla.org/en-US/docs/Web/CSS/@media

Page 124: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

7 Habits of Highly Effective Media Queries | Brad Frosthttp://bradfrost.com/blog/post/7-habits-of-highly-effective-media-queries/

@supports will change your life | Charlotte Jacksonhttps://www.lottejackson.com/learning/supports-will-change-your-life

cssnano: A modular minifier based on the PostCSS ecosystemhttp://cssnano.co/

User Queries | Blog | Decade Cityhttps://decadecity.net/blog/2015/06/28/user-queries

How to use -ms-high-contrast | Greg Whitworthhttp://www.gwhitworth.com/blog/2017/04/how-to-use-ms-high-contrast

Page 125: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

Shaun Finglas on Twitter: “Protip - max brightness and high contrast…”http://www.gwhitworth.com/blog/2017/04/how-to-use-ms-high-contrast

Responsive Design for Motion | WebKithttps://webkit.org/blog/7551/responsive-design-for-motion/

Media Queries Level 5: Editor’s Draft, 16 May 2017https://drafts.csswg.org/mediaqueries-5/

Responsive Color with Media Querieshttp://furbo.org/color/ResponsiveColor/

Touch Devices Should Not Be Judged By Their Size | CSS-Trickshttps://css-tricks.com/touch-devices-not-judged-size/

Page 126: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

Lighthouse | Web | Google Developershttps://developers.google.com/web/tools/lighthouse/

Mobile, Small, Portrait, Slow, Interlace, Monochrome, Coarse, Non-Hover, First | CSS- Trickshttps://css-tricks.com/mobile-small-portrait-slow-interlace-monochrome-coarse-non-hover-first/

How Many People With Disabilities Use My Website? - Mightybyteshttps://www.mightybytes.com/blog/how-many-people-with-disabilities-use-my-website/

It’s Time To Start Using CSS Custom Properties - Smashing Magazinehttps://www.smashingmagazine.com/2017/04/start-using-css-custom-properties/

Page 127: Designing for Inclusion with - on.notist.cloud · Designing for Inclusion with Media Queries Boston CSS August 16, 2017? Level setting. What is the web? HTML JS CSS. HTML JS CSS.

Locally Scoped CSS Variables: What, How, and Why | Una Kravets Onlinehttps://una.im/local-css-vars/

Steve Gardner on Twitter: “CSS variables (custom properties) makes…”https://twitter.com/steveg3003/status/888500276847562752