SlideShare une entreprise Scribd logo
1  sur  83
Télécharger pour lire hors ligne
Designing the
Conversation
Aaron Gustafson

@AaronGustafson
slideshare.net/AaronGustafson
@AaronGustafsonDesigning the Conversation
I’m	<em>really</em>	happy	to	see	you.
@AaronGustafsonDesigning the Conversation
IPowerful Phrases
@AaronGustafsonDesigning the Conversation
I’m	<em>really</em>	happy	to	see	you.
Emphasis
@AaronGustafsonDesigning the Conversation
Please	fill	out	the	form	below	to	contact	us.	
<strong>All	fields	are	required.</strong>
Strong Importance
@AaronGustafsonDesigning the Conversation
I’m really happy to see you.
Please fill out the form below to contact us. All fields are required.
@AaronGustafsonDesigning the Conversation
It's	a	terrible	movie	and	it	made	$200	million.	
<i>Go	figure!</i>	
She	is	admired	for	her	energy	and	<i	lang="fr">joie

de	vivre</i>.
Alternate Voice or Mood
@AaronGustafsonDesigning the Conversation
For	12	years	and	running,	over	100,000	companies	have	adopted	
the	<b>Basecamp</b>	way	of	working.	Not	just	tried,	but	signed	
up,	said	“ah-ha!”,	and	never	looked	back.	There’s	nothing	else	
like	<b>Basecamp</b>.
Stylistically Offset
@AaronGustafsonDesigning the Conversation
A	ramp	embedded	in	staircase	of	Robson	Square	in	Vancouver,	
<abbr	aria-label="British	Columbia">BC</abbr>.
Abbreviations & Acronyms
@AaronGustafsonDesigning the Conversation
There	is	<span>nothing	particularly	interesting</span>	in	this	
sentence.
Generic Phrasing
@AaronGustafsonDesigning the Conversation
IIMindful Links
@AaronGustafsonDesigning the Conversation
A	ramp	embedded	in	staircase	of	<a	href="https://
en.wikipedia.org/wiki/Robson_Square">Robson	Square</a>	in	
Vancouver,	<abbr	aria-label="British	Columbia">BC</abbr>.
Connecting Content
@AaronGustafsonDesigning the Conversation
<a	href="…"><b	class="hidden">You	can	</b>finish	reading<b	
class="hidden">	<cite>The	Web	Should	Just	Work	for	Everyone</
cite>	in	less	than	10	minutes</b></a>
Connecting Content
@AaronGustafsonDesigning the Conversation
To	illustrate	the	concept	of	layering	styles,	perhaps	it’s	best	
to	start	at	the	beginning:	with	no	style	applied.

<a	href="#figure-3-3">Figure	3.3</a>	shows	the	lodging	article	
in	Safari	with	only	the	default	browser	styles	applied.	
…	
<figure	id="figure-3-3">	
		…	
</figure>
Connecting Content
@AaronGustafsonDesigning the Conversation
<a	href="…"	hreflang="es"><b	class="hidden">Lea	esta	página	en	
		</b>Español</a>
Creating Context
@AaronGustafsonDesigning the Conversation
<a	href="giant.mp4"	type="video/mp4">Download	this	movie</a>
Creating Context
@AaronGustafsonDesigning the Conversation
<a	href="giant.mp4"	type="video/mp4"	download>Download	this

		movie</a>
Triggering Actions
@AaronGustafsonDesigning the Conversation
<a	href="mailto:aaron@easy-designs.net">Send	me	an	email</a>	
<a	href="tel:18009346489">Call	Comcast	Customer	Service</a>
Connecting Tools
@AaronGustafsonDesigning the Conversation
IIIEffective
Organization
@AaronGustafsonDesigning the Conversation
@AaronGustafsonDesigning the Conversation
<h1>This	is	the	title	of	the	page</h1>	
…	
<h2>This	titles	a	section</h2>	
…	
<h3>This	titles	a	subsection</h3>	
…	
etc.
Headings
@AaronGustafsonDesigning the Conversation
<p>This	twist	is	what	<a	href="https://en.wikipedia.org/wiki/
John_Harsanyi">John	Harsanyi</a>—an	early	game	theorist—refers	
to	as	the	<a	href="https://en.wikipedia.org/wiki/
Veil_of_ignorance">“Veil	of	Ignorance”</a>	and	what	Rawls	found,	
time	and	time	again,	was	that	individuals	participating	in	the	
experiment	would	gravitate	toward	creating	the	most	egalitarian	
societies.</p>
Moving Focus
@AaronGustafsonDesigning the Conversation
<p	tabindex="0">Please	fill	out	the	form	below	completely.	
<strong>All	fields	are	required.</strong></p>
Moving Focus
@AaronGustafsonDesigning the Conversation
Accessible

Rich Internet
Applications
@AaronGustafsonDesigning the Conversation
<div	id="nav"	role="navigation">	
		<ul>	
				<li>	
						<a	href="/about/"><b	class="hidden">A	Bit	</b>About<b	
class="hidden">	Me</b></a>	
				</li>	
	 	 	 …	
		</ul>	
</div>
Navigation Region
@AaronGustafsonDesigning the Conversation
๏banner
๏navigation
๏search
๏main
๏complementary
๏contentinfo
ARIA Landmark Roles
@AaronGustafsonDesigning the Conversation
@AaronGustafsonDesigning the Conversation
<header	class="banner"	role="banner"	id="top">

		<h1	class="banner_logo"><a	href="/"	rel="home">

				24	ways	<span>to	impress	your	friends</span></a></h1>	
</header>
@AaronGustafsonDesigning the Conversation
<main	role="main">	
		…	
</main>
@AaronGustafsonDesigning the Conversation
<nav	class="navigation"	role="navigation"	id="menu">

		<h1	class="hidden">Browse	24	ways</h1>

		<ul	class="nav	nav-topics">	
				<li	class="nav_item"><a	href="/topics/business/"

						data-icon="&#x2655;">Business</a></li>	
				…	
		</ul>

		…	
</nav>
@AaronGustafsonDesigning the Conversation
<footer	class="contentinfo"	role="contentinfo">	
		<p	class="contentinfo_copyright">	
				<small>&#169;	2005-2016	24	ways	and	our	authors.

				<a	href="/about/#colophon">Colophon</a></small>	
		</p>	
		<p	class="contentinfo_social">	
				<a	href="http://feeds.feedburner.com/24ways"

						rel="alternate">Grab	our	RSS	feed</a>	
				<a	href="https://twitter.com/24ways"	rel="me">Follow	us

						on	Twitter</a>	
				<a	href="/newsletter">Subscribe	to	our	newsletter</a>	
		</p>	
</footer>
@AaronGustafsonDesigning the Conversation
๏banner - first header element not inside a sectioning element
๏navigation - nav
๏search
๏main - main
๏complementary - aside
๏contentinfo - first footer element not inside a sectioning element
HTML Landmarks
@AaronGustafsonDesigning the Conversation
<div>	
		This	is	simply	a	generic	division	of	content.	
</div>
@AaronGustafsonDesigning the Conversation
๏p - a paragraph
๏ol - a list of items whose order matters
๏ul - an list of items whose order doesn’t matter
๏li - an item in a list
๏dl - a list of items and their associated descriptions
๏dt - terms to be described within a dl
๏dd - description data within in a dl
๏figure - referenced content (images, tables, etc.)
๏figcaption - caption for a figure
Alterna-divs
@AaronGustafsonDesigning the Conversation
๏article - a piece of content that can stand on its own
๏section - a section of a document or article
๏header - preamble content for a document, article, or section
๏footer - supplementary information for a document, article, or section
๏main - the primary content of a document
๏nav - navigational content
๏aside - complementary content
Alterna-divs
@AaronGustafsonDesigning the Conversation
IVFriendly Forms
@AaronGustafsonDesigning the Conversation
What’s	your	first	name?	
<input	name="first_name">
@AaronGustafsonDesigning the Conversation
<label	for="first_name">What’s	your	first	name?</label>	
<input	id="first_name"	name="first_name">
@AaronGustafsonDesigning the Conversation
<label>	
		What’s	your	first	name?	
		<input	name="first_name">	
</label>
@AaronGustafsonDesigning the Conversation
<label	for="first_name">	
		What’s	your	first	name?	
		<input	id="first_name"	name="first_name">	
</label>
@AaronGustafsonDesigning the Conversation
<label	for="first_name">What’s	your	first	name?</label>	
<input	id="first_name"	name="first_name">
@AaronGustafsonDesigning the Conversation
Use the right

field type
@AaronGustafsonDesigning the Conversation
<label	for="first_name">What’s	Your	First	Name?</label>	
<input	type="text"	id="first_name"	name="first_name">
Free Response
@AaronGustafsonDesigning the Conversation
<label	for="email">What’s	Your	Business	Email	Address?</label>	
<input	type="email"	id="email"	name="email">
Free Response: Email
Appearance Native Validation
Text Field Maybe
@AaronGustafsonDesigning the Conversation
Browsers ignore
what they don’t
understand
@AaronGustafsonDesigning the Conversation
Progressive
Enhancement
@AaronGustafsonDesigning the Conversation
SHAMELESS PLUG!
Crafting Rich Experienceswith Progressive Enhancement
SECOND EDITION
ADAPTIVEWEBDESIGN
by Aaron GustafsonForeword by Jeremy Keith
Read Free at
http://is.gd/awd1st
25 Copies

free to good homes
@AaronGustafsonDesigning the Conversation
<label	for="url">What’s	Your	Website’s	URL?</label>	
<input	type="url"	id="url"	name="url">
Free Response: URL
Appearance Native Validation
Text Field Maybe
@AaronGustafsonDesigning the Conversation
Don’t introduce
unnecessary
complexity
@AaronGustafsonDesigning the Conversation
Phone Number:
@AaronGustafsonDesigning the Conversation
<label	for="tel">What’s	Your	Business	Phone	Number?</label>	
<input	type="tel"	id="tel"	name="business_phone">
Free Response: Telephone
Appearance Native Validation
Text Field No
@AaronGustafsonDesigning the Conversation
We should

work harder

so our users

don’t have to
@AaronGustafsonDesigning the Conversation
Help users

avoid errors
@AaronGustafsonDesigning the Conversation
Enable common
information to be
auto-filled
@AaronGustafsonDesigning the Conversation
<label	for="name">What’s	Your	Name?</label>	
<input	id="name"	name="name"	required	aria-required="true">
Keys for Auto-filling
@AaronGustafsonDesigning the Conversation
<label	for="passport">What’s	Your	Passport	Number?</label>	
<input	id="passport"	name="passport"

							required	aria-required="true"	
							autocomplete="off"	
							>
Don’t Store All Values
@AaronGustafsonDesigning the Conversation
๏ name
๏ honorific-prefix
๏ given-name
๏ additional-name
๏ family-name
๏ honorific-suffix
๏ nickname
๏ username
๏ new-password
๏ current-password
๏ organization-title
๏ organization
๏ street-address
๏ address-line1
๏ address-line2
๏ address-line3
๏ address-level4
๏ address-level3
๏ address-level2
๏ address-level1
๏ country
๏ country-name
๏ postal-code
๏ cc-name
๏ cc-given-name
๏ cc-additional-name
๏ cc-family-name
๏ cc-number
๏ cc-exp
๏ cc-exp-month
๏ cc-exp-year
๏ cc-csc
๏ cc-type
๏ transaction-currency
๏ transaction-amount
๏ language
๏ bday
๏ bday-day
๏ bday-month
๏ bday-year
๏ sex
๏ url
๏ photo
๏ tel
๏ tel-country-code
๏ tel-national
๏ tel-area-code
๏ tel-local
๏ tel-local-prefix
๏ tel-local-suffix
๏ tel-extension
๏ email
๏ impp
Autofill Tokens
@AaronGustafsonDesigning the Conversation
<label	for="shipping-mobile">Is	there	a	mobile	number	we	can		
		reach	you	on	regarding	delivery?</label>	
<input	type="tel"	id="shipping-mobile"	name="shipping-mobile"

							autocomplete="shipping	mobile	tel">
@AaronGustafsonDesigning the Conversation
Let users know
when a field is
required
@AaronGustafsonDesigning the Conversation
<p>Fields	marked	with	a	*	are	
		<strong	id="required">required</strong>.</p>	
…	
<label	for="first_name">What’s	Your	First	Name?	
		<b	role="presentation"	class="required">*</b>	
</label>	
<input	id="first_name"	name="first_name"	
										required	
										aria-required="true"	
										>
Required Fields
@AaronGustafsonDesigning the Conversation
<p><strong>All	of	the	fields	are	required.</strong></p>	
…	
<label	for="first_name">What’s	Your	First	Name?</label>	
<input	id="first_name"	name="first_name"	
										required	
										aria-required="true"	
										>
Required Fields
@AaronGustafsonDesigning the Conversation
<p><strong>All	of	the	fields	are	required.</strong></p>	
…	
<label	for="first_name">What’s	Your	First	Name?</label>	
<input	id="first_name"	name="first_name"	
										required	
										aria-required="true"	
										>
Required Fields
@AaronGustafsonDesigning the Conversation
Provide useful
hints as to the
type of response
you’re expecting
@AaronGustafsonDesigning the Conversation
<label	for="flight">What	flight	are	you	looking	for?</label>	
<input	id="flight"	name="flight"	
	 	 	 	pattern="DLd{2,}"	
	 	 	 	placeholder="e.g.	DL5407"	
	 	 	 	>	
Suggesting a response
@AaronGustafsonDesigning the Conversation
Validate

in the browser
@AaronGustafsonDesigning the Conversation
<label	for="first_name">What’s	Your	First	Name?</label>	
<input	id="first_name"	name="first_name"	
										required	
										aria-required="true"	
										>
Browser Validated
@AaronGustafsonDesigning the Conversation
<label	for="email">What’s	Your	Business	Email	Address?</label>	
<input	type="email"	id="email"	name="email">
Browser Validated
@AaronGustafsonDesigning the Conversation
<label	for="flight">What	flight	are	you	looking	for?</label>	
<input	id="flight"	name="flight"	
	 	 	 	pattern="DLd{2,}"	
	 	 	 	placeholder="e.g.	DL5407"	
	 	 	 	>
Browser Validated
@AaronGustafsonDesigning the Conversation
@AaronGustafsonDesigning the Conversation
<label	for="email">Your	Email	Address</label>	
<input	id="email"	type="email"	name="email"	
									required	aria-required="true"	
									aria-invalid="true"	
									aria-describedby="email-error"	
									>	
<strong	id="email-error"	class="validation-error-message">	
		Your	email	address	is	required</strong>
Inline Errors
@AaronGustafsonDesigning the Conversation
<label	for="email">Your	Email	Address</label>	
<input	id="email"	type="email"	name="email"	
									required	aria-required="true"	
									aria-invalid="true"	
									aria-errormessage="email-error"	
									>	
<strong	id="email-error"	class="validation-error-message">	
		Your	email	address	is	required</strong>
Inline Errors
@AaronGustafsonDesigning the Conversation
Validate

on the server
@AaronGustafsonDesigning the Conversation
<input type=“hidden” name=“price” value=“399.99”>
@AaronGustafsonDesigning the Conversation
<input type=“hidden” name=“price” value=“1”>
@AaronGustafsonDesigning the Conversation
Never trust

the client
@AaronGustafsonDesigning the Conversation
Summarize

server-side errors
@AaronGustafsonDesigning the Conversation
@AaronGustafsonDesigning the Conversation
<div	role="alert">	
		<p>There	were	errors	with	your	form	submission:</p>	
		<ol>	
				<li><a	href="#message">Message</a>	is	a	required	

						field</li>	
				<li><a	href="#name">Name</a>	is	a	required	field</li>	
				<li><a	href="#email">Email</a>	is	a	required	field</li>	
		</ol>	
</div>
@AaronGustafsonDesigning the Conversation
<div	role="alert">	
		<p>There	were	errors	with	your	form	submission:</p>	
		<ol>	
				<li><a	href="#message">Message</a>	is	a	required	

						field</li>	
				<li><a	href="#name">Name</a>	is	a	required	field</li>	
				<li><a	href="#email">Email</a>	is	a	required	field</li>	
		</ol>	
</div>
@AaronGustafsonDesigning the Conversation
<div	role="alert">	
		<p>There	were	errors	with	your	form	submission:</p>	
		<ol>	
				<li><a	href="#message">Message</a>	is	a	required	

						field</li>	
				<li><a	href="#name">Name</a>	is	a	required	field</li>	
				<li><a	href="#email">Email</a>	is	a	required	field</li>	
		</ol>	
</div>
@AaronGustafsonDesigning the Conversation
<div	role="alert">	
		<p>There	were	errors	with	your	form	submission:</p>	
		<ol>	
				<li><a	href="#message">Message</a>	is	a	required	

						field</li>	
				<li><a	href="#name">Name</a>	is	a	required	field</li>	
				<li><a	href="#email">Email</a>	is	a	required	field</li>	
		</ol>	
</div>
@AaronGustafsonDesigning the Conversation
<label	for="email">Your	Email	Address</label>	
<input	id="email"	type="email"	name="email"	
									required	aria-required="true"	
									aria-invalid="true"	
									aria-describedby="email-error"	
									>	
<strong	id="email-error"	class="validation-error-message">	
		Your	email	address	is	required</strong>
Inline Errors
Thank you!
@AaronGustafson
aaron-gustafson.com
slideshare.net/AaronGustafson

Contenu connexe

Similaire à Designing the Conversation [Concatenate 2018]

Getting Started with Progressive Web Apps [Beyond Tellerrand 2019]
Getting Started with Progressive Web Apps [Beyond Tellerrand 2019]Getting Started with Progressive Web Apps [Beyond Tellerrand 2019]
Getting Started with Progressive Web Apps [Beyond Tellerrand 2019]Aaron Gustafson
 
Fonts in the Age of the Interface
Fonts in the Age of the InterfaceFonts in the Age of the Interface
Fonts in the Age of the InterfaceClint Schnee
 
Designing the Conversation [SmashingConf 2016]
Designing the Conversation [SmashingConf 2016]Designing the Conversation [SmashingConf 2016]
Designing the Conversation [SmashingConf 2016]Aaron Gustafson
 
presentation on business opportunity in africa.pptx
presentation on business opportunity in africa.pptxpresentation on business opportunity in africa.pptx
presentation on business opportunity in africa.pptxTicher Nur
 

Similaire à Designing the Conversation [Concatenate 2018] (7)

Getting Started with Progressive Web Apps [Beyond Tellerrand 2019]
Getting Started with Progressive Web Apps [Beyond Tellerrand 2019]Getting Started with Progressive Web Apps [Beyond Tellerrand 2019]
Getting Started with Progressive Web Apps [Beyond Tellerrand 2019]
 
Fonts in the Age of the Interface
Fonts in the Age of the InterfaceFonts in the Age of the Interface
Fonts in the Age of the Interface
 
Designing the Conversation [SmashingConf 2016]
Designing the Conversation [SmashingConf 2016]Designing the Conversation [SmashingConf 2016]
Designing the Conversation [SmashingConf 2016]
 
FILTRATION.pptx
FILTRATION.pptxFILTRATION.pptx
FILTRATION.pptx
 
flota vehicular.pptx
flota vehicular.pptxflota vehicular.pptx
flota vehicular.pptx
 
12 none
12 none12 none
12 none
 
presentation on business opportunity in africa.pptx
presentation on business opportunity in africa.pptxpresentation on business opportunity in africa.pptx
presentation on business opportunity in africa.pptx
 

Plus de Aaron Gustafson

Delivering Critical Information and Services [JavaScript & Friends 2021]
Delivering Critical Information and Services [JavaScript & Friends 2021]Delivering Critical Information and Services [JavaScript & Friends 2021]
Delivering Critical Information and Services [JavaScript & Friends 2021]Aaron Gustafson
 
Adapting to Reality [Guest Lecture, March 2021]
Adapting to Reality [Guest Lecture, March 2021]Adapting to Reality [Guest Lecture, March 2021]
Adapting to Reality [Guest Lecture, March 2021]Aaron Gustafson
 
Progressive Web Apps: Where Do I Begin?
Progressive Web Apps: Where Do I Begin?Progressive Web Apps: Where Do I Begin?
Progressive Web Apps: Where Do I Begin?Aaron Gustafson
 
Media in the Age of PWAs [ImageCon 2019]
Media in the Age of PWAs [ImageCon 2019]Media in the Age of PWAs [ImageCon 2019]
Media in the Age of PWAs [ImageCon 2019]Aaron Gustafson
 
Adapting to Reality [Starbucks Lunch & Learn]
Adapting to Reality [Starbucks Lunch & Learn]Adapting to Reality [Starbucks Lunch & Learn]
Adapting to Reality [Starbucks Lunch & Learn]Aaron Gustafson
 
Better Performance === Greater Accessibility [Inclusive Design 24 2018]
Better Performance === Greater Accessibility [Inclusive Design 24 2018]Better Performance === Greater Accessibility [Inclusive Design 24 2018]
Better Performance === Greater Accessibility [Inclusive Design 24 2018]Aaron Gustafson
 
PWA: Where Do I Begin? [Microsoft Ignite 2018]
PWA: Where Do I Begin? [Microsoft Ignite 2018]PWA: Where Do I Begin? [Microsoft Ignite 2018]
PWA: Where Do I Begin? [Microsoft Ignite 2018]Aaron Gustafson
 
Performance as User Experience [AEADC 2018]
Performance as User Experience [AEADC 2018]Performance as User Experience [AEADC 2018]
Performance as User Experience [AEADC 2018]Aaron Gustafson
 
The Web Should Just Work for Everyone
The Web Should Just Work for EveryoneThe Web Should Just Work for Everyone
The Web Should Just Work for EveryoneAaron Gustafson
 
Performance as User Experience [AEA SEA 2018]
Performance as User Experience [AEA SEA 2018]Performance as User Experience [AEA SEA 2018]
Performance as User Experience [AEA SEA 2018]Aaron Gustafson
 
Performance as User Experience [An Event Apart Denver 2017]
Performance as User Experience [An Event Apart Denver 2017]Performance as User Experience [An Event Apart Denver 2017]
Performance as User Experience [An Event Apart Denver 2017]Aaron Gustafson
 
Advanced Design Methods 1, Day 2
Advanced Design Methods 1, Day 2Advanced Design Methods 1, Day 2
Advanced Design Methods 1, Day 2Aaron Gustafson
 
Advanced Design Methods 1, Day 1
Advanced Design Methods 1, Day 1Advanced Design Methods 1, Day 1
Advanced Design Methods 1, Day 1Aaron Gustafson
 
Exploring Adaptive Interfaces [Generate 2017]
Exploring Adaptive Interfaces [Generate 2017]Exploring Adaptive Interfaces [Generate 2017]
Exploring Adaptive Interfaces [Generate 2017]Aaron Gustafson
 
Progressive Web Apps and the Windows Ecosystem [Build 2017]
Progressive Web Apps and the Windows Ecosystem [Build 2017]Progressive Web Apps and the Windows Ecosystem [Build 2017]
Progressive Web Apps and the Windows Ecosystem [Build 2017]Aaron Gustafson
 
Writing for Engagement [TechReady 22]
Writing for Engagement [TechReady 22]Writing for Engagement [TechReady 22]
Writing for Engagement [TechReady 22]Aaron Gustafson
 
The Features of Highly Effective Forms [SmashingConf NYC 2016]
The Features of Highly Effective Forms [SmashingConf NYC 2016]The Features of Highly Effective Forms [SmashingConf NYC 2016]
The Features of Highly Effective Forms [SmashingConf NYC 2016]Aaron Gustafson
 
Planning Adaptive Interfaces [RWD Summit 2016]
Planning Adaptive Interfaces [RWD Summit 2016]Planning Adaptive Interfaces [RWD Summit 2016]
Planning Adaptive Interfaces [RWD Summit 2016]Aaron Gustafson
 
The Features of Highly Effective Forms [An Event Apart Nashville 2016]
The Features of Highly Effective Forms [An Event Apart Nashville 2016]The Features of Highly Effective Forms [An Event Apart Nashville 2016]
The Features of Highly Effective Forms [An Event Apart Nashville 2016]Aaron Gustafson
 
Planning Adaptive Interfaces [EnhanceConf 2016]
Planning Adaptive Interfaces [EnhanceConf 2016]Planning Adaptive Interfaces [EnhanceConf 2016]
Planning Adaptive Interfaces [EnhanceConf 2016]Aaron Gustafson
 

Plus de Aaron Gustafson (20)

Delivering Critical Information and Services [JavaScript & Friends 2021]
Delivering Critical Information and Services [JavaScript & Friends 2021]Delivering Critical Information and Services [JavaScript & Friends 2021]
Delivering Critical Information and Services [JavaScript & Friends 2021]
 
Adapting to Reality [Guest Lecture, March 2021]
Adapting to Reality [Guest Lecture, March 2021]Adapting to Reality [Guest Lecture, March 2021]
Adapting to Reality [Guest Lecture, March 2021]
 
Progressive Web Apps: Where Do I Begin?
Progressive Web Apps: Where Do I Begin?Progressive Web Apps: Where Do I Begin?
Progressive Web Apps: Where Do I Begin?
 
Media in the Age of PWAs [ImageCon 2019]
Media in the Age of PWAs [ImageCon 2019]Media in the Age of PWAs [ImageCon 2019]
Media in the Age of PWAs [ImageCon 2019]
 
Adapting to Reality [Starbucks Lunch & Learn]
Adapting to Reality [Starbucks Lunch & Learn]Adapting to Reality [Starbucks Lunch & Learn]
Adapting to Reality [Starbucks Lunch & Learn]
 
Better Performance === Greater Accessibility [Inclusive Design 24 2018]
Better Performance === Greater Accessibility [Inclusive Design 24 2018]Better Performance === Greater Accessibility [Inclusive Design 24 2018]
Better Performance === Greater Accessibility [Inclusive Design 24 2018]
 
PWA: Where Do I Begin? [Microsoft Ignite 2018]
PWA: Where Do I Begin? [Microsoft Ignite 2018]PWA: Where Do I Begin? [Microsoft Ignite 2018]
PWA: Where Do I Begin? [Microsoft Ignite 2018]
 
Performance as User Experience [AEADC 2018]
Performance as User Experience [AEADC 2018]Performance as User Experience [AEADC 2018]
Performance as User Experience [AEADC 2018]
 
The Web Should Just Work for Everyone
The Web Should Just Work for EveryoneThe Web Should Just Work for Everyone
The Web Should Just Work for Everyone
 
Performance as User Experience [AEA SEA 2018]
Performance as User Experience [AEA SEA 2018]Performance as User Experience [AEA SEA 2018]
Performance as User Experience [AEA SEA 2018]
 
Performance as User Experience [An Event Apart Denver 2017]
Performance as User Experience [An Event Apart Denver 2017]Performance as User Experience [An Event Apart Denver 2017]
Performance as User Experience [An Event Apart Denver 2017]
 
Advanced Design Methods 1, Day 2
Advanced Design Methods 1, Day 2Advanced Design Methods 1, Day 2
Advanced Design Methods 1, Day 2
 
Advanced Design Methods 1, Day 1
Advanced Design Methods 1, Day 1Advanced Design Methods 1, Day 1
Advanced Design Methods 1, Day 1
 
Exploring Adaptive Interfaces [Generate 2017]
Exploring Adaptive Interfaces [Generate 2017]Exploring Adaptive Interfaces [Generate 2017]
Exploring Adaptive Interfaces [Generate 2017]
 
Progressive Web Apps and the Windows Ecosystem [Build 2017]
Progressive Web Apps and the Windows Ecosystem [Build 2017]Progressive Web Apps and the Windows Ecosystem [Build 2017]
Progressive Web Apps and the Windows Ecosystem [Build 2017]
 
Writing for Engagement [TechReady 22]
Writing for Engagement [TechReady 22]Writing for Engagement [TechReady 22]
Writing for Engagement [TechReady 22]
 
The Features of Highly Effective Forms [SmashingConf NYC 2016]
The Features of Highly Effective Forms [SmashingConf NYC 2016]The Features of Highly Effective Forms [SmashingConf NYC 2016]
The Features of Highly Effective Forms [SmashingConf NYC 2016]
 
Planning Adaptive Interfaces [RWD Summit 2016]
Planning Adaptive Interfaces [RWD Summit 2016]Planning Adaptive Interfaces [RWD Summit 2016]
Planning Adaptive Interfaces [RWD Summit 2016]
 
The Features of Highly Effective Forms [An Event Apart Nashville 2016]
The Features of Highly Effective Forms [An Event Apart Nashville 2016]The Features of Highly Effective Forms [An Event Apart Nashville 2016]
The Features of Highly Effective Forms [An Event Apart Nashville 2016]
 
Planning Adaptive Interfaces [EnhanceConf 2016]
Planning Adaptive Interfaces [EnhanceConf 2016]Planning Adaptive Interfaces [EnhanceConf 2016]
Planning Adaptive Interfaces [EnhanceConf 2016]
 

Dernier

Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...tanu pandey
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRLLucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRLimonikaupta
 
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Call Girls in Nagpur High Profile
 
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call GirlVIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girladitipandeya
 
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebGDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebJames Anderson
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)Damian Radcliffe
 
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...Neha Pandey
 
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607dollysharma2066
 
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine ServiceHot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Servicesexy call girls service in goa
 
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Russian Call girls in Dubai +971563133746 Dubai Call girls
Russian  Call girls in Dubai +971563133746 Dubai  Call girlsRussian  Call girls in Dubai +971563133746 Dubai  Call girls
Russian Call girls in Dubai +971563133746 Dubai Call girlsstephieert
 
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girlsstephieert
 
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.soniya singh
 
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts servicesonalikaur4
 
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night StandHot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Standkumarajju5765
 
horny (9316020077 ) Goa Call Girls Service by VIP Call Girls in Goa
horny (9316020077 ) Goa  Call Girls Service by VIP Call Girls in Goahorny (9316020077 ) Goa  Call Girls Service by VIP Call Girls in Goa
horny (9316020077 ) Goa Call Girls Service by VIP Call Girls in Goasexy call girls service in goa
 
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝soniya singh
 

Dernier (20)

Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
 
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRLLucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
 
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...Top Rated  Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
Top Rated Pune Call Girls Daund ⟟ 6297143586 ⟟ Call Me For Genuine Sex Servi...
 
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
 
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call GirlVIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
 
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebGDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)
 
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
 
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
 
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine ServiceHot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
 
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
 
Russian Call girls in Dubai +971563133746 Dubai Call girls
Russian  Call girls in Dubai +971563133746 Dubai  Call girlsRussian  Call girls in Dubai +971563133746 Dubai  Call girls
Russian Call girls in Dubai +971563133746 Dubai Call girls
 
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
 
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
 
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
 
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night StandHot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
 
horny (9316020077 ) Goa Call Girls Service by VIP Call Girls in Goa
horny (9316020077 ) Goa  Call Girls Service by VIP Call Girls in Goahorny (9316020077 ) Goa  Call Girls Service by VIP Call Girls in Goa
horny (9316020077 ) Goa Call Girls Service by VIP Call Girls in Goa
 
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
 

Designing the Conversation [Concatenate 2018]