SlideShare ist ein Scribd-Unternehmen logo
1 von 123
Downloaden Sie, um offline zu lesen
Designing the
Conversation
Aaron Gustafson

@AaronGustafson
slideshare.net/AaronGustafson
@AaronGustafsonDesigning the Conversation
@AaronGustafsonDesigning the Conversation
@AaronGustafsonDesigning the Conversation
@AaronGustafsonDesigning the Conversation
I’m	<em>really</em>	happy	to	see	you.
@AaronGustafsonDesigning the Conversation
@AaronGustafsonDesigning the Conversation
@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
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	rel="bookmark"	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>
Creating Context
@AaronGustafsonDesigning the Conversation
<a	rel="me"	href="…">Read	my	bio</a>
Creating Context
@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
@AaronGustafsonDesigning the Conversation
@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
@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
@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
@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
@AaronGustafsonDesigning the Conversation
@AaronGustafsonDesigning the Conversation
@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
@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
@AaronGustafsonDesigning the Conversation
IVFriendly Forms
@AaronGustafsonDesigning the Conversation
Make it clear
users need to
respond
@AaronGustafsonDesigning the Conversation
“What’s your first name?”
@AaronGustafsonDesigning the Conversation
“What’s your first name?”
@AaronGustafsonDesigning the Conversation
@AaronGustafsonDesigning the Conversation
“Without your first name, I won’t

know how to address you.

Could you please provide it?”
@AaronGustafsonDesigning the Conversation
“Without your first name, I won’t

know how to address you.

Could you please provide it?”
@AaronGustafsonDesigning the Conversation
@AaronGustafsonDesigning the Conversation
“Reserve your spot”
@AaronGustafsonDesigning the Conversation
“Reserve your spot”
@AaronGustafsonDesigning the Conversation
@AaronGustafsonDesigning the Conversation
What’s	your	first	name?	
<input	name="first_name">
@AaronGustafsonDesigning the Conversation
<label>What’s	your	first	name?</label>	
<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
<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
<label	for="time_at_job">How	Many	Years	Have	You	Been

		in	Your	Current	Position?</label>	
<input	type="number"	id="time_at_job"	name="time_at_job">
Free Response: Number
Appearance Native Validation
Text Field+ Maybe
@AaronGustafsonDesigning the Conversation
<label	for="volume">How	Loud	is	Spinal	Tap?</label>	
<input	type="range"	id="volume"	name="volume"	
	 	 	 			min="0"	max="11"	step="1"	
	 	 	 			>
Choose One: Number
Appearance Native Validation
Slider (Maybe) Maybe
@AaronGustafsonDesigning the Conversation
@AaronGustafsonDesigning the Conversation
Don’t introduce
unnecessary
complexity
@AaronGustafsonDesigning the Conversation
Phone Number:
@AaronGustafsonDesigning the Conversation
Phone Number:
@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
@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
@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-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
@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
Never trust

the client
@AaronGustafsonDesigning the Conversation
Summarize

server-side errors
@AaronGustafsonDesigning the Conversation
@AaronGustafsonDesigning the Conversation
<div	tabindex="0"	aria-labelledby="errors">	
		<p	id="errors">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	tabindex="0"	aria-labelledby="errors">	
		<p	id="errors">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	tabindex="0"	aria-labelledby="errors">	
		<p	id="errors">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	tabindex="0"	aria-labelledby="errors">	
		<p	id="errors">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	tabindex="0"	aria-labelledby="errors">	
		<p	id="errors">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
@AaronGustafsonDesigning the Conversation
@AaronGustafsonDesigning the Conversation
Thank you!
@AaronGustafson
aaron-gustafson.com
slideshare.net/AaronGustafson

Weitere ähnliche Inhalte

Mehr von 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
 
Designing the Conversation [Accessibility DC 2018]
Designing the Conversation [Accessibility DC 2018]Designing the Conversation [Accessibility DC 2018]
Designing the Conversation [Accessibility DC 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
 
Designing the Conversation [Paris Web 2017]
Designing the Conversation [Paris Web 2017]Designing the Conversation [Paris Web 2017]
Designing the Conversation [Paris Web 2017]Aaron 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
 
Designing the Conversation [SmashingConf 2016]
Designing the Conversation [SmashingConf 2016]Designing the Conversation [SmashingConf 2016]
Designing the Conversation [SmashingConf 2016]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
 

Mehr von 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]
 
Designing the Conversation [Accessibility DC 2018]
Designing the Conversation [Accessibility DC 2018]Designing the Conversation [Accessibility DC 2018]
Designing the Conversation [Accessibility DC 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
 
Designing the Conversation [Paris Web 2017]
Designing the Conversation [Paris Web 2017]Designing the Conversation [Paris Web 2017]
Designing the Conversation [Paris Web 2017]
 
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]
 
Designing the Conversation [SmashingConf 2016]
Designing the Conversation [SmashingConf 2016]Designing the Conversation [SmashingConf 2016]
Designing the Conversation [SmashingConf 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]
The Features of Highly Effective Forms [SmashingConf NYC 2016]
 

Kürzlich hochgeladen

Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 

Kürzlich hochgeladen (20)

Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 

Designing the Conversation [Beyond Tellerrand 2019]