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

DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
"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
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 

Kürzlich hochgeladen (20)

DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
"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
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 

Designing the Conversation [Beyond Tellerrand 2019]