The Features of Highly Effective Forms [SmashingConf NYC 2016]

Aaron Gustafson
Aaron GustafsonWeb Design Author, Evangelist, Practitioner, and Teacher at Microsoft
THE FEATURES OF

HIGHLY EFFECTIVE
FORMS
Aaron Gustafson
@AaronGustafson
slideshare.net/AaronGustafson
IConsider the
conversation
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]
The Features of Highly Effective Forms [SmashingConf NYC 2016]
Make every field
fight for its place in
your forms.
PercentageofUsersConverted
0%
5%
10%
15%
20%
25%
30%
Number of Fields
1 2 3 4 5 6 7 8 9 10
http://is.gd/field_count_conversion
MICHAEL AAGAARD, UNBOUNCE
I finally convinced the client to let me
remove three form fields. I wanted to

remove more, but I could only get away 

with removing three. But that’s still one 

third of the form fields – a lot less friction.
The result? 14% drop in conversion.
http://is.gd/fewer_fields_fewer_conversions
Prepare for
pushback.
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]
IIChoose your

words carefully
HATE SPEECHHARASSMENT
How does this photo make you feel?
Embarrassing
Upsetting
Saddening
Bad Photo
Other
How does this photo make you feel?
Embarrassing
Upsetting
Saddening
Bad Photo
◉ Other it’s embarrassing
Please describe the photo
It’s embarrassing
It’s a bad photo of me
It makes me sad
Talk to your users
like they talk

to one another.
Ask higher value
questions.
Make it clear users
need to respond
“What’s your first name?”
“Without your first name, I won’t

know how to address you.

Could you please provide it?”
“Reserve your spot”
IIIMake good

markup choices
Label every field
Who you gonna call?
<input name=“calling”>
<label>Who you gonna call?</label>
<input name=“calling”>
<label for=“calling”>Who you gonna call?</label>
<input id=“calling” name=“calling”>
<label>
Who you gonna call?
<input name=“calling”>
</label>
<label for=“calling”>
Who you gonna call?
<input id=“calling” name=“calling”>
</label>
<label for=“calling”>Who you gonna call?</label>
<input id=“calling” name=“calling”>
Use real buttons
Sign In
<input type=“submit” value=“Sign In”>
Sign In
<button type=“submit”>Sign In</button>
Sign In
<a href=“#” class=“button”>Sign In</a>
Sign In
<div class=“button”>Sign In</div>
Sign InSign In
<input type=“submit” value=“Sign In”>
Sign In
Appearance Seen As Focusable Activates Submits Forms
Button Button Yes Yes Yes
<button type=“submit”>Sign In</button>
Sign In
Appearance Seen As Focusable Activates Submits Forms
Button Button Yes Yes Yes
<a href=“#” class=“button” role=“button”>Sign In</a>
Sign In
Appearance Seen As Focusable Activates Submits Forms
Inline Text Link Yes Kinda No
JS dependency
<
JS dependency
<
ARIA dependency
<CSS dependency
<
<div class=“button” role=“button” tabindex=“0”>Sign In</div>
Sign InSign In
Appearance Seen As Focusable Activates Submits Forms
Block Text Generic No No No
JS dependency
<
JS dependency
<
ARIA dependency
<CSS dependency
<
HTML dependency
<
<button type=“submit”>Sign In</button>
Sign In
Appearance Seen As Focusable Activates Submits Forms
Button Button Yes Yes Yes
Use the right

field type
THE FEATURES OF HIGHLY EFFECTIVE FORMS
<label for=“calling”>Who you gonna call?</label>
<input type=“text” id=“calling” name=“calling”>
Free Response
THE FEATURES OF HIGHLY EFFECTIVE FORMS
<label for=“calling”>Who you gonna call?</label>
<input id=“calling” name=“calling”>
Free Response (is the default)
THE FEATURES OF HIGHLY EFFECTIVE FORMS
<label for=“email”>What’s Your Business Email Address?</label>
<input type=“email” id=“email” name=“email”>
Free Response: Email
Appearance Native Validation Custom Keyboard
Text Field Maybe Maybe
THE FEATURES OF HIGHLY EFFECTIVE FORMS
<label for=“email”>What’s Your Business Email Address?</label>
<input type=“email” id=“email” name=“email”>
Free Response: Email
Appearance Native Validation Custom Keyboard
Text Field Maybe Maybe
Browsers ignore
what they don’t
understand
Progressive
Enhancement
THE FEATURES OF HIGHLY EFFECTIVE FORMS
<label for=“url”>What’s Your Website’s URL?</label>
<input type=“url” id=“url” name=“url”>
Free Response: URL
Appearance Native Validation Custom Keyboard
Text Field Maybe Maybe
THE FEATURES OF HIGHLY EFFECTIVE FORMS
<label for=“url”>What’s Your Website’s URL?</label>
<input type=“url” id=“url” name=“url”>
Free Response: URL
Appearance Native Validation Custom Keyboard
Text Field Maybe Maybe
THE FEATURES OF HIGHLY EFFECTIVE FORMS
<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 Custom Keyboard
Text Field+ Maybe Maybe
THE FEATURES OF HIGHLY EFFECTIVE FORMS
<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 Custom Keyboard
Text Field+ Maybe Maybe
THE FEATURES OF HIGHLY EFFECTIVE FORMS
Choose One
Please describe the photo
It’s embarrassing
It’s a bad photo of me
It makes me sad
THE FEATURES OF HIGHLY EFFECTIVE FORMS
Please describe the photo
<label>
<input type=“radio” name=“reason” value=“embarrassing”>
It’s embarrassing
</label>
<label>
<input type=“radio” name=“reason” value=“bad photo”>
It’s a bad photo of me
</label>
<label>
<input type=“radio” name=“reason” value=“saddening”>
It makes me sad
</label>
Choose One
THE FEATURES OF HIGHLY EFFECTIVE FORMS
<label for=“reason”>Please describe the photo</label>
<select id=“reason” name=“reason”>
<option value=“embarrassing”>It’s embarrassing</option>
<option value=“bad photo”>It’s a bad photo of me</option>
<option value=“saddening”>It makes me sad</option>
</select>
Choose One
THE FEATURES OF HIGHLY EFFECTIVE FORMS
<label for=“reason”>Please describe the photo</label>
<select id=“reason” name=“reason”>
<option>It’s embarrassing</option>
<option>It’s a bad photo of me</option>
<option>It makes me sad</option>
</select>
Choose One
Radio controls can
outperform select
dropdowns by

as much as 15%
http://is.gd/radio_vs_dropdown
THE FEATURES OF HIGHLY EFFECTIVE FORMS
<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 Custom Keyboard
Slider (Maybe) Maybe No
THE FEATURES OF HIGHLY EFFECTIVE FORMS
<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 Custom Keyboard
Slider Maybe No
THE FEATURES OF HIGHLY EFFECTIVE FORMS
Choose One or More
THE FEATURES OF HIGHLY EFFECTIVE FORMS
Gaming Systems (4 available)
<label>
<input type=“checkbox” name=“reserve[]” value=“DS Lite”>
Nintendo DS Lite
</label>
<label>
<input type=“checkbox” name=“reserve[]” value=“Wii”>
Nintendo Wii
</label>
<label>
<input type=“checkbox” name=“reserve[]” value=“Vita”>
PlayStation Vita
</label>
Choose One or More
THE FEATURES OF HIGHLY EFFECTIVE FORMS
<label for=“gaming”>Gaming Systems (4 available)</label>
<select id=“gaming” name=“reserve[]” multiple>
<option value=“DS Lite”>Nintendo DS Lite</option>
<option value=“Wii”>Nintendo Wii</option>
<option value=“Vita”>PlayStation Vita</option>
<option value=“360”>Xbox 360</option>
</select>
Choose One or More
THE FEATURES OF HIGHLY EFFECTIVE FORMS
<label for=“gaming”>Gaming Systems (4 available)</label>
<select id=“gaming” name=“reserve[]” multiple>
<option value=“DS Lite”>Nintendo DS Lite</option>
<option value=“Wii”>Nintendo Wii</option>
<option value=“Vita”>PlayStation Vita</option>
<option value=“360”>Xbox 360</option>
</select>
Choose One or More
THE FEATURES OF HIGHLY EFFECTIVE FORMS
Gaming Systems (4 available)
<label>
<input type=“checkbox” name=“reserve[]” value=“DS Lite”>
Nintendo DS Lite
</label>
<label>
<input type=“checkbox” name=“reserve[]” value=“Wii”>
Nintendo Wii
</label>
<label>
<input type=“checkbox” name=“reserve[]” value=“Vita”>
PlayStation Vita
</label>
Choose One or More
Don’t introduce
unnecessary
complexity.
Phone Number:
THE FEATURES OF HIGHLY EFFECTIVE FORMS
<label for=“tel”>What’s Your Business Phone Number?</label>
<input type=“tel” id=“tel” name=“business_phone”>
Free Response: Telephone
Appearance Native Validation Custom Keyboard
Text Field No Maybe
THE FEATURES OF HIGHLY EFFECTIVE FORMS
<label for=“tel”>What’s Your Business Phone Number?</label>
<input type=“tel” id=“tel” name=“business_phone”>
Free Response: Telephone
Appearance Native Validation Custom Keyboard
Text Field No Maybe
We should work harder

so our users don’t have to.
THE FEATURES OF HIGHLY EFFECTIVE FORMS
<label for=“flight”>What flight are you looking for?</label>
<input id="flight" name=“flight”
pattern=“DLd{2,}”
placeholder=“e.g. DL5407”
>
Structured Data: Custom
IVLay out fields

with purpose
THE FEATURES OF HIGHLY EFFECTIVE FORMS
Field & Label Layouts
Label
Label
Label
Label
Label
THE FEATURES OF HIGHLY EFFECTIVE FORMS
Field & Label Layouts
Label
Label
Label
Label
Label
THE FEATURES OF HIGHLY EFFECTIVE FORMS
Field & Label Layouts
Label
Label
Label
Label
Label
THE FEATURES OF HIGHLY EFFECTIVE FORMS
Checkboxes & Radio Controls
Embarrassing
Upsetting
Saddening
Bad Photo
Other
THE FEATURES OF HIGHLY EFFECTIVE FORMS
<fieldset class=“grouped radios”>
…
<label>
<input type=“radio”
name=“reason”
value=“embarrassing”>
It’s embarrassing
</label>
…
</fieldset>
Checkboxes & Radio Controls
Embarrassing
THE FEATURES OF HIGHLY EFFECTIVE FORMS
.confirmation label,
.radios label,
.checkboxes label {
margin: -1em 0;
padding: 1em 0;
}
Checkboxes & Radio Controls
Embarrassing
THE FEATURES OF HIGHLY EFFECTIVE FORMS
.confirmation label,
.radios label,
.checkboxes label {
margin: -1em 0;
padding: 1em 0;
}
Checkboxes & Radio Controls
Embarrassing
THE FEATURES OF HIGHLY EFFECTIVE FORMS
.confirmation label,
.radios label,
.checkboxes label {
margin: -1em 0;
padding: 1em 0;
}
Checkboxes & Radio Controls
Embarrassing
THE FEATURES OF HIGHLY EFFECTIVE FORMS
.confirmation label,
.radios label,
.checkboxes label {
margin: -1em 0;
padding: 1em 0;
}
Checkboxes & Radio Controls
Embarrassing
Don’t fall into the
custom control trap.
on
The Features of Highly Effective Forms [SmashingConf NYC 2016]
VHelps users avoid
(and fix) errors
Let users know when
a field is required.
THE FEATURES OF HIGHLY EFFECTIVE FORMS
<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
THE FEATURES OF HIGHLY EFFECTIVE FORMS
<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
THE FEATURES OF HIGHLY EFFECTIVE FORMS
<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
Provide useful hints
as to the type of
response you’re
expecting.
THE FEATURES OF HIGHLY EFFECTIVE FORMS
<label for=“pattern”>Enter three numbers followed by

two letters</label>
<input id="pattern" name=“pattern”
pattern=“d{3}[a-zA-Z]{2}”
placeholder=“e.g. 123ab”
>
Suggesting a response
(The placeholder is not

a substitute for a label.)
Validate

in the browser.
LUKE WROBLEWSKI
Our participants were faster, more
successful, less error-prone, and more
satisfied when they used the forms with
inline validation.
http://is.gd/inline_form_validation
LUKE WROBLEWSKI
22% increase in success rates
22% decrease in errors made
31% increase in satisfaction rating
42% decrease in completion times
47% decrease in the number of eye fixations
http://is.gd/inline_form_validation
THE FEATURES OF HIGHLY EFFECTIVE FORMS
<label for=“first_name”>What’s Your First Name?</label>
<input id="first_name" name=“first_name"
required
aria-required=“true"
>
Indicate Required Fields
THE FEATURES OF HIGHLY EFFECTIVE FORMS
<label for=“email”>What’s Your Business Email Address?</label>
<input type=“email” id=“email” name=“email”>
Use Native Validation
THE FEATURES OF HIGHLY EFFECTIVE FORMS
<label for=“flight”>What flight are you looking for?</label>
<input id="flight" name=“flight”
pattern=“DLd{2,}”
placeholder=“e.g. DL5407”
>
Use Custom Validation Schema
The Features of Highly Effective Forms [SmashingConf NYC 2016]
THE FEATURES OF HIGHLY EFFECTIVE FORMS
<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>
Provide Inline Error Messages
Validate

on the server.
The Features of Highly Effective Forms [SmashingConf NYC 2016]
<input type=“hidden” name=“price” value=“399.99”>
<input type=“hidden” name=“price” value=“1”>
Never trust

the client.
Summarize

server-side errors.
The Features of Highly Effective Forms [SmashingConf NYC 2016]
<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>
THE FEATURES OF HIGHLY EFFECTIVE FORMS
<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>
Provide Inline Error Messages
THE FEATURES OF HIGHLY EFFECTIVE FORMS
<li class="text validation-error">
<!-- field with an error -->
</li>
Provide Visual Feedback of Errors
THE FEATURES OF HIGHLY EFFECTIVE FORMS
li.validation-error {
color: #922026;
}
li.validation-error input, li.validation-error select,
li.validation-error textarea {
border-color: #922026;
}
Provide Visual Feedback of Errors
THE FEATURES OF HIGHLY EFFECTIVE FORMS
.validation-error label::before {
content: “x ";
font-family: Verdana, sans-serif;
speak: none; /* The future! */
}
Provide Visual Feedback of Errors
THE FEATURES OF HIGHLY EFFECTIVE FORMS
The Features of Highly Effective Forms
๏ Consider the conversation
๏ Choose your words carefully
๏ Make good markup choices
๏ Lay out fields with purpose
๏ Help users avoid (and fix) errors
159
THE FEATURES OF HIGHLY EFFECTIVE FORMS
Further Reading
๏ “Web Form Design”by Luke Wroblewski (Rosenfeld Media)
๏ “An Extensive Guide To Web Form Usability”by Justin Mifsud

https://www.smashingmagazine.com/2011/11/extensive-guide-web-form-usability/
๏ “Optimizing forms for greater conversions”by Maya Nix

http://blog.usabilla.com/optimizing-forms-greater-conversions/
๏ “The Definitive Guide to Form Label Positioning”by Jessica Enders

http://www.sitepoint.com/definitive-guide-form-label-positioning/
164
Thank you!
@AaronGustafson
aaron-gustafson.com
slideshare.net/AaronGustafson
Questions?
Tweet me at

@AaronGustafson
1 of 118

Recommended

Falling in Love with Forms [F0WD 2015] by
Falling in Love with Forms [F0WD 2015]Falling in Love with Forms [F0WD 2015]
Falling in Love with Forms [F0WD 2015]Aaron Gustafson
2.2K views130 slides
Falling in Love With Forms [An Event Apart DC 2015] by
Falling in Love With Forms [An Event Apart DC 2015]Falling in Love With Forms [An Event Apart DC 2015]
Falling in Love With Forms [An Event Apart DC 2015]Aaron Gustafson
4.7K views141 slides
Falling in Love with Forms [Microsoft Edge Web Summit 2015] by
Falling in Love with Forms [Microsoft Edge Web Summit 2015]Falling in Love with Forms [Microsoft Edge Web Summit 2015]
Falling in Love with Forms [Microsoft Edge Web Summit 2015]Aaron Gustafson
24.1K views151 slides
The Features of Highly Effective Forms [An Event Apart Nashville 2016] by
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
1.8K views143 slides
Falling in Love with Forms [Web Design Day] by
Falling in Love with Forms [Web Design Day]Falling in Love with Forms [Web Design Day]
Falling in Love with Forms [Web Design Day]Aaron Gustafson
2K views140 slides
Falling in Love With Forms [Breaking Development Nashville 2015] by
Falling in Love With Forms [Breaking Development Nashville 2015]Falling in Love With Forms [Breaking Development Nashville 2015]
Falling in Love With Forms [Breaking Development Nashville 2015]Aaron Gustafson
2.4K views139 slides

More Related Content

What's hot

18servers And Forms by
18servers And Forms18servers And Forms
18servers And FormsAdil Jafri
187 views20 slides
Learn html5 by
Learn html5Learn html5
Learn html5Mostafa Bayomi
1.4K views161 slides
Wireframing recitation by
Wireframing recitationWireframing recitation
Wireframing recitationcarolynzhang
461 views58 slides
Learning To Love Forms (The Ajax Experience West 2007) by
Learning To Love Forms (The Ajax Experience West 2007)Learning To Love Forms (The Ajax Experience West 2007)
Learning To Love Forms (The Ajax Experience West 2007)Aaron Gustafson
758 views102 slides
Html 5 Forms by
Html 5 FormsHtml 5 Forms
Html 5 FormsJim Gerland
878 views14 slides
Fork forms library by
Fork forms libraryFork forms library
Fork forms libraryYoniWeb
626 views52 slides

What's hot(11)

18servers And Forms by Adil Jafri
18servers And Forms18servers And Forms
18servers And Forms
Adil Jafri187 views
Wireframing recitation by carolynzhang
Wireframing recitationWireframing recitation
Wireframing recitation
carolynzhang461 views
Learning To Love Forms (The Ajax Experience West 2007) by Aaron Gustafson
Learning To Love Forms (The Ajax Experience West 2007)Learning To Love Forms (The Ajax Experience West 2007)
Learning To Love Forms (The Ajax Experience West 2007)
Aaron Gustafson758 views
Fork forms library by YoniWeb
Fork forms libraryFork forms library
Fork forms library
YoniWeb626 views
Learning To Love Forms [The Ajax Experience East 2007] by Aaron Gustafson
Learning To Love Forms [The Ajax Experience East 2007]Learning To Love Forms [The Ajax Experience East 2007]
Learning To Love Forms [The Ajax Experience East 2007]
Aaron Gustafson1.2K views
Web Design Course - Lecture 6 - HTML form and form validation by Al-Mamun Sarkar
Web Design Course - Lecture 6 - HTML form and form validationWeb Design Course - Lecture 6 - HTML form and form validation
Web Design Course - Lecture 6 - HTML form and form validation
Al-Mamun Sarkar171 views
Learning To Love Forms (An Event Apart San Francisco '07) by Aaron Gustafson
Learning To Love Forms (An Event Apart San Francisco '07)Learning To Love Forms (An Event Apart San Francisco '07)
Learning To Love Forms (An Event Apart San Francisco '07)
Aaron Gustafson921 views
Stylesheets for Online Help - Scott DeLoach, ClickStart by Scott DeLoach
Stylesheets for Online Help - Scott DeLoach, ClickStartStylesheets for Online Help - Scott DeLoach, ClickStart
Stylesheets for Online Help - Scott DeLoach, ClickStart
Scott DeLoach902 views

Viewers also liked

Beyond Responsive [18F 2015] by
Beyond Responsive [18F 2015]Beyond Responsive [18F 2015]
Beyond Responsive [18F 2015]Aaron Gustafson
5.2K views139 slides
Falling in Love with Forms [Øredev 2015] by
Falling in Love with Forms [Øredev 2015]Falling in Love with Forms [Øredev 2015]
Falling in Love with Forms [Øredev 2015]Aaron Gustafson
3.8K views130 slides
Ruining the User Experience [SXSW 2007] by
Ruining the User Experience [SXSW 2007]Ruining the User Experience [SXSW 2007]
Ruining the User Experience [SXSW 2007]Aaron Gustafson
1.9K views21 slides
Designing the Conversation [SmashingConf 2016] by
Designing the Conversation [SmashingConf 2016]Designing the Conversation [SmashingConf 2016]
Designing the Conversation [SmashingConf 2016]Aaron Gustafson
1.4K views104 slides
Writing for Engagement [TechReady 22] by
Writing for Engagement [TechReady 22]Writing for Engagement [TechReady 22]
Writing for Engagement [TechReady 22]Aaron Gustafson
1.3K views89 slides
Designing the Conversation [SpeechTek 2016] by
Designing the Conversation [SpeechTek 2016]Designing the Conversation [SpeechTek 2016]
Designing the Conversation [SpeechTek 2016]Aaron Gustafson
1.4K views123 slides

Viewers also liked(20)

Falling in Love with Forms [Øredev 2015] by Aaron Gustafson
Falling in Love with Forms [Øredev 2015]Falling in Love with Forms [Øredev 2015]
Falling in Love with Forms [Øredev 2015]
Aaron Gustafson3.8K views
Ruining the User Experience [SXSW 2007] by Aaron Gustafson
Ruining the User Experience [SXSW 2007]Ruining the User Experience [SXSW 2007]
Ruining the User Experience [SXSW 2007]
Aaron Gustafson1.9K views
Designing the Conversation [SmashingConf 2016] by Aaron Gustafson
Designing the Conversation [SmashingConf 2016]Designing the Conversation [SmashingConf 2016]
Designing the Conversation [SmashingConf 2016]
Aaron Gustafson1.4K views
Writing for Engagement [TechReady 22] by Aaron Gustafson
Writing for Engagement [TechReady 22]Writing for Engagement [TechReady 22]
Writing for Engagement [TechReady 22]
Aaron Gustafson1.3K views
Designing the Conversation [SpeechTek 2016] by Aaron Gustafson
Designing the Conversation [SpeechTek 2016]Designing the Conversation [SpeechTek 2016]
Designing the Conversation [SpeechTek 2016]
Aaron Gustafson1.4K views
There Are No “Buts” in Progressive Enhancement [Øredev 2015] by Aaron Gustafson
There Are No “Buts” in Progressive Enhancement [Øredev 2015]There Are No “Buts” in Progressive Enhancement [Øredev 2015]
There Are No “Buts” in Progressive Enhancement [Øredev 2015]
Aaron Gustafson54.9K views
¿Qué esperar del futuro de las ciudades? by Manu Fernández
¿Qué esperar del futuro de las ciudades?¿Qué esperar del futuro de las ciudades?
¿Qué esperar del futuro de las ciudades?
Manu Fernández1.7K views
NOVELA. Equilibrio en la sombra. ERNESTO RAMÍREZ by Ernesto Ramirez
NOVELA. Equilibrio en la sombra. ERNESTO RAMÍREZNOVELA. Equilibrio en la sombra. ERNESTO RAMÍREZ
NOVELA. Equilibrio en la sombra. ERNESTO RAMÍREZ
Ernesto Ramirez857 views
ASE2014 Modelos parentales y demandas educativas - Daniel Gabaldón Estevan; M... by Daniel Gabadón-Estevan
ASE2014 Modelos parentales y demandas educativas - Daniel Gabaldón Estevan; M...ASE2014 Modelos parentales y demandas educativas - Daniel Gabaldón Estevan; M...
ASE2014 Modelos parentales y demandas educativas - Daniel Gabaldón Estevan; M...
1 s2.0-s1742706114003110-main(4) by ayuprasiska
1 s2.0-s1742706114003110-main(4)1 s2.0-s1742706114003110-main(4)
1 s2.0-s1742706114003110-main(4)
ayuprasiska932 views
Preguntas y respuestas sobre la ley de ilicitos cambiarios by Oscar Barreto
Preguntas y respuestas sobre la ley de ilicitos cambiariosPreguntas y respuestas sobre la ley de ilicitos cambiarios
Preguntas y respuestas sobre la ley de ilicitos cambiarios
Oscar Barreto812 views
Lolek by ioseph30
LolekLolek
Lolek
ioseph30340 views

Similar to The Features of Highly Effective Forms [SmashingConf NYC 2016]

HTML5 - Forms by
HTML5 - FormsHTML5 - Forms
HTML5 - Formstina1357
1.5K views40 slides
Automated Testing ชีวิตดีๆที่ลงตัว (design + tech stack) by
Automated Testing ชีวิตดีๆที่ลงตัว (design + tech stack)Automated Testing ชีวิตดีๆที่ลงตัว (design + tech stack)
Automated Testing ชีวิตดีๆที่ลงตัว (design + tech stack)Seven Peaks Speaks
135 views31 slides
How to code radio buttons in HTML5 and CSS Styling by
How to code radio buttons in HTML5 and CSS StylingHow to code radio buttons in HTML5 and CSS Styling
How to code radio buttons in HTML5 and CSS StylingAimeeKyra
11.1K views21 slides
Troubleshooting Email Like a Pro by
Troubleshooting Email Like a ProTroubleshooting Email Like a Pro
Troubleshooting Email Like a ProLitmus
292 views111 slides
Radically Improve Conversion Rates - eMSF 2009 by
Radically Improve Conversion Rates - eMSF 2009Radically Improve Conversion Rates - eMSF 2009
Radically Improve Conversion Rates - eMSF 2009Kayden Kelly
1.8K views59 slides
MBLTDev15: Kyle Fuller, Apairy by
MBLTDev15: Kyle Fuller, ApairyMBLTDev15: Kyle Fuller, Apairy
MBLTDev15: Kyle Fuller, Apairye-Legion
257 views67 slides

Similar to The Features of Highly Effective Forms [SmashingConf NYC 2016](20)

HTML5 - Forms by tina1357
HTML5 - FormsHTML5 - Forms
HTML5 - Forms
tina13571.5K views
Automated Testing ชีวิตดีๆที่ลงตัว (design + tech stack) by Seven Peaks Speaks
Automated Testing ชีวิตดีๆที่ลงตัว (design + tech stack)Automated Testing ชีวิตดีๆที่ลงตัว (design + tech stack)
Automated Testing ชีวิตดีๆที่ลงตัว (design + tech stack)
Seven Peaks Speaks135 views
How to code radio buttons in HTML5 and CSS Styling by AimeeKyra
How to code radio buttons in HTML5 and CSS StylingHow to code radio buttons in HTML5 and CSS Styling
How to code radio buttons in HTML5 and CSS Styling
AimeeKyra11.1K views
Troubleshooting Email Like a Pro by Litmus
Troubleshooting Email Like a ProTroubleshooting Email Like a Pro
Troubleshooting Email Like a Pro
Litmus292 views
Radically Improve Conversion Rates - eMSF 2009 by Kayden Kelly
Radically Improve Conversion Rates - eMSF 2009Radically Improve Conversion Rates - eMSF 2009
Radically Improve Conversion Rates - eMSF 2009
Kayden Kelly1.8K views
MBLTDev15: Kyle Fuller, Apairy by e-Legion
MBLTDev15: Kyle Fuller, ApairyMBLTDev15: Kyle Fuller, Apairy
MBLTDev15: Kyle Fuller, Apairy
e-Legion257 views
Your Custom WordPress Admin Pages Suck by Anthony Montalbano
Your Custom WordPress Admin Pages SuckYour Custom WordPress Admin Pages Suck
Your Custom WordPress Admin Pages Suck
Anthony Montalbano10.4K views
Startup Metrics for Pirates by Dave McClure
Startup Metrics for PiratesStartup Metrics for Pirates
Startup Metrics for Pirates
Dave McClure1.2M views
Falling in Love with Forms [BDConf 2014] by Aaron Gustafson
Falling in Love with Forms [BDConf 2014]Falling in Love with Forms [BDConf 2014]
Falling in Love with Forms [BDConf 2014]
Aaron Gustafson5.7K views
Building & Breaking Web Forms with Quaid-JS by cliener
Building & Breaking Web Forms with Quaid-JSBuilding & Breaking Web Forms with Quaid-JS
Building & Breaking Web Forms with Quaid-JS
cliener819 views
MCSL016 IGNOU SOLVED LAB MANUAL by DIVYA SINGH
MCSL016 IGNOU SOLVED LAB MANUALMCSL016 IGNOU SOLVED LAB MANUAL
MCSL016 IGNOU SOLVED LAB MANUAL
DIVYA SINGH2.4K views
AppForum 2014 Boost Hybrid App Performance by robgalvinjr
AppForum 2014 Boost Hybrid App PerformanceAppForum 2014 Boost Hybrid App Performance
AppForum 2014 Boost Hybrid App Performance
robgalvinjr465 views
Review template faucet by anujpanda
Review template faucetReview template faucet
Review template faucet
anujpanda148 views
What I Talk About When I Talk About Composition by Mehdi Valikhani
What I Talk About When I Talk About CompositionWhat I Talk About When I Talk About Composition
What I Talk About When I Talk About Composition
Mehdi Valikhani281 views
Web Forms People Don't Hate by cliener
Web Forms People Don't HateWeb Forms People Don't Hate
Web Forms People Don't Hate
cliener4.5K views
Designing web pages html forms and input by Jesus Obenita Jr.
Designing web pages html  forms and inputDesigning web pages html  forms and input
Designing web pages html forms and input
Jesus Obenita Jr.8.6K views
Web Technology Lab File by Kandarp Tiwari
Web Technology Lab FileWeb Technology Lab File
Web Technology Lab File
Kandarp Tiwari10.6K views

More from Aaron Gustafson

Delivering Critical Information and Services [JavaScript & Friends 2021] by
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
259 views138 slides
Adapting to Reality [Guest Lecture, March 2021] by
Adapting to Reality [Guest Lecture, March 2021]Adapting to Reality [Guest Lecture, March 2021]
Adapting to Reality [Guest Lecture, March 2021]Aaron Gustafson
131 views93 slides
Designing the Conversation [Beyond Tellerrand 2019] by
Designing the Conversation [Beyond Tellerrand 2019]Designing the Conversation [Beyond Tellerrand 2019]
Designing the Conversation [Beyond Tellerrand 2019]Aaron Gustafson
633 views123 slides
Getting Started with Progressive Web Apps [Beyond Tellerrand 2019] by
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
2.3K views179 slides
Progressive Web Apps: Where Do I Begin? by
Progressive Web Apps: Where Do I Begin?Progressive Web Apps: Where Do I Begin?
Progressive Web Apps: Where Do I Begin?Aaron Gustafson
519 views155 slides
Media in the Age of PWAs [ImageCon 2019] by
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
522 views77 slides

More from Aaron Gustafson(20)

Delivering Critical Information and Services [JavaScript & Friends 2021] by 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]
Aaron Gustafson259 views
Adapting to Reality [Guest Lecture, March 2021] by Aaron Gustafson
Adapting to Reality [Guest Lecture, March 2021]Adapting to Reality [Guest Lecture, March 2021]
Adapting to Reality [Guest Lecture, March 2021]
Aaron Gustafson131 views
Designing the Conversation [Beyond Tellerrand 2019] by Aaron Gustafson
Designing the Conversation [Beyond Tellerrand 2019]Designing the Conversation [Beyond Tellerrand 2019]
Designing the Conversation [Beyond Tellerrand 2019]
Aaron Gustafson633 views
Getting Started with Progressive Web Apps [Beyond Tellerrand 2019] by Aaron Gustafson
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 Gustafson2.3K views
Progressive Web Apps: Where Do I Begin? by Aaron Gustafson
Progressive Web Apps: Where Do I Begin?Progressive Web Apps: Where Do I Begin?
Progressive Web Apps: Where Do I Begin?
Aaron Gustafson519 views
Media in the Age of PWAs [ImageCon 2019] by 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]
Aaron Gustafson522 views
Adapting to Reality [Starbucks Lunch & Learn] by Aaron Gustafson
Adapting to Reality [Starbucks Lunch & Learn]Adapting to Reality [Starbucks Lunch & Learn]
Adapting to Reality [Starbucks Lunch & Learn]
Aaron Gustafson660 views
Conversational Semantics for the Web [CascadiaJS 2018] by Aaron Gustafson
Conversational Semantics for the Web [CascadiaJS 2018]Conversational Semantics for the Web [CascadiaJS 2018]
Conversational Semantics for the Web [CascadiaJS 2018]
Aaron Gustafson649 views
Better Performance === Greater Accessibility [Inclusive Design 24 2018] by 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]
Aaron Gustafson587 views
PWA: Where Do I Begin? [Microsoft Ignite 2018] by 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]
Aaron Gustafson500 views
Designing the Conversation [Concatenate 2018] by Aaron Gustafson
Designing the Conversation [Concatenate 2018]Designing the Conversation [Concatenate 2018]
Designing the Conversation [Concatenate 2018]
Aaron Gustafson482 views
Designing the Conversation [Accessibility DC 2018] by Aaron Gustafson
Designing the Conversation [Accessibility DC 2018]Designing the Conversation [Accessibility DC 2018]
Designing the Conversation [Accessibility DC 2018]
Aaron Gustafson660 views
Performance as User Experience [AEADC 2018] by Aaron Gustafson
Performance as User Experience [AEADC 2018]Performance as User Experience [AEADC 2018]
Performance as User Experience [AEADC 2018]
Aaron Gustafson440 views
The Web Should Just Work for Everyone by Aaron Gustafson
The Web Should Just Work for EveryoneThe Web Should Just Work for Everyone
The Web Should Just Work for Everyone
Aaron Gustafson414 views
Performance as User Experience [AEA SEA 2018] by Aaron Gustafson
Performance as User Experience [AEA SEA 2018]Performance as User Experience [AEA SEA 2018]
Performance as User Experience [AEA SEA 2018]
Aaron Gustafson950 views
Performance as User Experience [An Event Apart Denver 2017] by 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]
Aaron Gustafson647 views
Designing the Conversation [Paris Web 2017] by Aaron Gustafson
Designing the Conversation [Paris Web 2017]Designing the Conversation [Paris Web 2017]
Designing the Conversation [Paris Web 2017]
Aaron Gustafson1.2K views
Exploring Adaptive Interfaces [Generate 2017] by Aaron Gustafson
Exploring Adaptive Interfaces [Generate 2017]Exploring Adaptive Interfaces [Generate 2017]
Exploring Adaptive Interfaces [Generate 2017]
Aaron Gustafson1.2K views

Recently uploaded

What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue by
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueWhat’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueShapeBlue
265 views23 slides
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT by
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBITUpdates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBITShapeBlue
208 views8 slides
Business Analyst Series 2023 - Week 4 Session 7 by
Business Analyst Series 2023 -  Week 4 Session 7Business Analyst Series 2023 -  Week 4 Session 7
Business Analyst Series 2023 - Week 4 Session 7DianaGray10
146 views31 slides
"Node.js Development in 2024: trends and tools", Nikita Galkin by
"Node.js Development in 2024: trends and tools", Nikita Galkin "Node.js Development in 2024: trends and tools", Nikita Galkin
"Node.js Development in 2024: trends and tools", Nikita Galkin Fwdays
33 views38 slides
Evaluation of Quality of Experience of ABR Schemes in Gaming Stream by
Evaluation of Quality of Experience of ABR Schemes in Gaming StreamEvaluation of Quality of Experience of ABR Schemes in Gaming Stream
Evaluation of Quality of Experience of ABR Schemes in Gaming StreamAlpen-Adria-Universität
38 views34 slides
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit... by
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...ShapeBlue
162 views25 slides

Recently uploaded(20)

What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue by ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueWhat’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
ShapeBlue265 views
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT by ShapeBlue
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBITUpdates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
ShapeBlue208 views
Business Analyst Series 2023 - Week 4 Session 7 by DianaGray10
Business Analyst Series 2023 -  Week 4 Session 7Business Analyst Series 2023 -  Week 4 Session 7
Business Analyst Series 2023 - Week 4 Session 7
DianaGray10146 views
"Node.js Development in 2024: trends and tools", Nikita Galkin by Fwdays
"Node.js Development in 2024: trends and tools", Nikita Galkin "Node.js Development in 2024: trends and tools", Nikita Galkin
"Node.js Development in 2024: trends and tools", Nikita Galkin
Fwdays33 views
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit... by ShapeBlue
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
Transitioning from VMware vCloud to Apache CloudStack: A Path to Profitabilit...
ShapeBlue162 views
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ... by ShapeBlue
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
Import Export Virtual Machine for KVM Hypervisor - Ayush Pandey - University ...
ShapeBlue120 views
Digital Personal Data Protection (DPDP) Practical Approach For CISOs by Priyanka Aash
Digital Personal Data Protection (DPDP) Practical Approach For CISOsDigital Personal Data Protection (DPDP) Practical Approach For CISOs
Digital Personal Data Protection (DPDP) Practical Approach For CISOs
Priyanka Aash162 views
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha... by ShapeBlue
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
ShapeBlue183 views
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ... by ShapeBlue
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
ShapeBlue171 views
Optimizing Communication to Optimize Human Behavior - LCBM by Yaman Kumar
Optimizing Communication to Optimize Human Behavior - LCBMOptimizing Communication to Optimize Human Behavior - LCBM
Optimizing Communication to Optimize Human Behavior - LCBM
Yaman Kumar38 views
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P... by ShapeBlue
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
ShapeBlue196 views
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue by ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlueCloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
ShapeBlue137 views
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And... by ShapeBlue
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...
ShapeBlue108 views
"Surviving highload with Node.js", Andrii Shumada by Fwdays
"Surviving highload with Node.js", Andrii Shumada "Surviving highload with Node.js", Andrii Shumada
"Surviving highload with Node.js", Andrii Shumada
Fwdays58 views
The Power of Heat Decarbonisation Plans in the Built Environment by IES VE
The Power of Heat Decarbonisation Plans in the Built EnvironmentThe Power of Heat Decarbonisation Plans in the Built Environment
The Power of Heat Decarbonisation Plans in the Built Environment
IES VE84 views
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ... by Jasper Oosterveld
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue by ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
ShapeBlue152 views

The Features of Highly Effective Forms [SmashingConf NYC 2016]

  • 1. THE FEATURES OF
 HIGHLY EFFECTIVE FORMS Aaron Gustafson @AaronGustafson slideshare.net/AaronGustafson
  • 8. Make every field fight for its place in your forms.
  • 9. PercentageofUsersConverted 0% 5% 10% 15% 20% 25% 30% Number of Fields 1 2 3 4 5 6 7 8 9 10 http://is.gd/field_count_conversion
  • 10. MICHAEL AAGAARD, UNBOUNCE I finally convinced the client to let me remove three form fields. I wanted to
 remove more, but I could only get away 
 with removing three. But that’s still one 
 third of the form fields – a lot less friction. The result? 14% drop in conversion. http://is.gd/fewer_fields_fewer_conversions
  • 17. How does this photo make you feel? Embarrassing Upsetting Saddening Bad Photo Other
  • 18. How does this photo make you feel? Embarrassing Upsetting Saddening Bad Photo ◉ Other it’s embarrassing
  • 19. Please describe the photo It’s embarrassing It’s a bad photo of me It makes me sad
  • 20. Talk to your users like they talk
 to one another.
  • 22. Make it clear users need to respond
  • 24. “Without your first name, I won’t
 know how to address you.
 Could you please provide it?”
  • 28. Who you gonna call? <input name=“calling”>
  • 29. <label>Who you gonna call?</label> <input name=“calling”>
  • 30. <label for=“calling”>Who you gonna call?</label> <input id=“calling” name=“calling”>
  • 31. <label> Who you gonna call? <input name=“calling”> </label>
  • 32. <label for=“calling”> Who you gonna call? <input id=“calling” name=“calling”> </label>
  • 33. <label for=“calling”>Who you gonna call?</label> <input id=“calling” name=“calling”>
  • 40. <input type=“submit” value=“Sign In”> Sign In Appearance Seen As Focusable Activates Submits Forms Button Button Yes Yes Yes
  • 41. <button type=“submit”>Sign In</button> Sign In Appearance Seen As Focusable Activates Submits Forms Button Button Yes Yes Yes
  • 42. <a href=“#” class=“button” role=“button”>Sign In</a> Sign In Appearance Seen As Focusable Activates Submits Forms Inline Text Link Yes Kinda No JS dependency < JS dependency < ARIA dependency <CSS dependency <
  • 43. <div class=“button” role=“button” tabindex=“0”>Sign In</div> Sign InSign In Appearance Seen As Focusable Activates Submits Forms Block Text Generic No No No JS dependency < JS dependency < ARIA dependency <CSS dependency < HTML dependency <
  • 44. <button type=“submit”>Sign In</button> Sign In Appearance Seen As Focusable Activates Submits Forms Button Button Yes Yes Yes
  • 46. THE FEATURES OF HIGHLY EFFECTIVE FORMS <label for=“calling”>Who you gonna call?</label> <input type=“text” id=“calling” name=“calling”> Free Response
  • 47. THE FEATURES OF HIGHLY EFFECTIVE FORMS <label for=“calling”>Who you gonna call?</label> <input id=“calling” name=“calling”> Free Response (is the default)
  • 48. THE FEATURES OF HIGHLY EFFECTIVE FORMS <label for=“email”>What’s Your Business Email Address?</label> <input type=“email” id=“email” name=“email”> Free Response: Email Appearance Native Validation Custom Keyboard Text Field Maybe Maybe
  • 49. THE FEATURES OF HIGHLY EFFECTIVE FORMS <label for=“email”>What’s Your Business Email Address?</label> <input type=“email” id=“email” name=“email”> Free Response: Email Appearance Native Validation Custom Keyboard Text Field Maybe Maybe
  • 50. Browsers ignore what they don’t understand
  • 52. THE FEATURES OF HIGHLY EFFECTIVE FORMS <label for=“url”>What’s Your Website’s URL?</label> <input type=“url” id=“url” name=“url”> Free Response: URL Appearance Native Validation Custom Keyboard Text Field Maybe Maybe
  • 53. THE FEATURES OF HIGHLY EFFECTIVE FORMS <label for=“url”>What’s Your Website’s URL?</label> <input type=“url” id=“url” name=“url”> Free Response: URL Appearance Native Validation Custom Keyboard Text Field Maybe Maybe
  • 54. THE FEATURES OF HIGHLY EFFECTIVE FORMS <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 Custom Keyboard Text Field+ Maybe Maybe
  • 55. THE FEATURES OF HIGHLY EFFECTIVE FORMS <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 Custom Keyboard Text Field+ Maybe Maybe
  • 56. THE FEATURES OF HIGHLY EFFECTIVE FORMS Choose One Please describe the photo It’s embarrassing It’s a bad photo of me It makes me sad
  • 57. THE FEATURES OF HIGHLY EFFECTIVE FORMS Please describe the photo <label> <input type=“radio” name=“reason” value=“embarrassing”> It’s embarrassing </label> <label> <input type=“radio” name=“reason” value=“bad photo”> It’s a bad photo of me </label> <label> <input type=“radio” name=“reason” value=“saddening”> It makes me sad </label> Choose One
  • 58. THE FEATURES OF HIGHLY EFFECTIVE FORMS <label for=“reason”>Please describe the photo</label> <select id=“reason” name=“reason”> <option value=“embarrassing”>It’s embarrassing</option> <option value=“bad photo”>It’s a bad photo of me</option> <option value=“saddening”>It makes me sad</option> </select> Choose One
  • 59. THE FEATURES OF HIGHLY EFFECTIVE FORMS <label for=“reason”>Please describe the photo</label> <select id=“reason” name=“reason”> <option>It’s embarrassing</option> <option>It’s a bad photo of me</option> <option>It makes me sad</option> </select> Choose One
  • 60. Radio controls can outperform select dropdowns by
 as much as 15% http://is.gd/radio_vs_dropdown
  • 61. THE FEATURES OF HIGHLY EFFECTIVE FORMS <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 Custom Keyboard Slider (Maybe) Maybe No
  • 62. THE FEATURES OF HIGHLY EFFECTIVE FORMS <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 Custom Keyboard Slider Maybe No
  • 63. THE FEATURES OF HIGHLY EFFECTIVE FORMS Choose One or More
  • 64. THE FEATURES OF HIGHLY EFFECTIVE FORMS Gaming Systems (4 available) <label> <input type=“checkbox” name=“reserve[]” value=“DS Lite”> Nintendo DS Lite </label> <label> <input type=“checkbox” name=“reserve[]” value=“Wii”> Nintendo Wii </label> <label> <input type=“checkbox” name=“reserve[]” value=“Vita”> PlayStation Vita </label> Choose One or More
  • 65. THE FEATURES OF HIGHLY EFFECTIVE FORMS <label for=“gaming”>Gaming Systems (4 available)</label> <select id=“gaming” name=“reserve[]” multiple> <option value=“DS Lite”>Nintendo DS Lite</option> <option value=“Wii”>Nintendo Wii</option> <option value=“Vita”>PlayStation Vita</option> <option value=“360”>Xbox 360</option> </select> Choose One or More
  • 66. THE FEATURES OF HIGHLY EFFECTIVE FORMS <label for=“gaming”>Gaming Systems (4 available)</label> <select id=“gaming” name=“reserve[]” multiple> <option value=“DS Lite”>Nintendo DS Lite</option> <option value=“Wii”>Nintendo Wii</option> <option value=“Vita”>PlayStation Vita</option> <option value=“360”>Xbox 360</option> </select> Choose One or More
  • 67. THE FEATURES OF HIGHLY EFFECTIVE FORMS Gaming Systems (4 available) <label> <input type=“checkbox” name=“reserve[]” value=“DS Lite”> Nintendo DS Lite </label> <label> <input type=“checkbox” name=“reserve[]” value=“Wii”> Nintendo Wii </label> <label> <input type=“checkbox” name=“reserve[]” value=“Vita”> PlayStation Vita </label> Choose One or More
  • 70. THE FEATURES OF HIGHLY EFFECTIVE FORMS <label for=“tel”>What’s Your Business Phone Number?</label> <input type=“tel” id=“tel” name=“business_phone”> Free Response: Telephone Appearance Native Validation Custom Keyboard Text Field No Maybe
  • 71. THE FEATURES OF HIGHLY EFFECTIVE FORMS <label for=“tel”>What’s Your Business Phone Number?</label> <input type=“tel” id=“tel” name=“business_phone”> Free Response: Telephone Appearance Native Validation Custom Keyboard Text Field No Maybe
  • 72. We should work harder
 so our users don’t have to.
  • 73. THE FEATURES OF HIGHLY EFFECTIVE FORMS <label for=“flight”>What flight are you looking for?</label> <input id="flight" name=“flight” pattern=“DLd{2,}” placeholder=“e.g. DL5407” > Structured Data: Custom
  • 75. THE FEATURES OF HIGHLY EFFECTIVE FORMS Field & Label Layouts Label Label Label Label Label
  • 76. THE FEATURES OF HIGHLY EFFECTIVE FORMS Field & Label Layouts Label Label Label Label Label
  • 77. THE FEATURES OF HIGHLY EFFECTIVE FORMS Field & Label Layouts Label Label Label Label Label
  • 78. THE FEATURES OF HIGHLY EFFECTIVE FORMS Checkboxes & Radio Controls Embarrassing Upsetting Saddening Bad Photo Other
  • 79. THE FEATURES OF HIGHLY EFFECTIVE FORMS <fieldset class=“grouped radios”> … <label> <input type=“radio” name=“reason” value=“embarrassing”> It’s embarrassing </label> … </fieldset> Checkboxes & Radio Controls Embarrassing
  • 80. THE FEATURES OF HIGHLY EFFECTIVE FORMS .confirmation label, .radios label, .checkboxes label { margin: -1em 0; padding: 1em 0; } Checkboxes & Radio Controls Embarrassing
  • 81. THE FEATURES OF HIGHLY EFFECTIVE FORMS .confirmation label, .radios label, .checkboxes label { margin: -1em 0; padding: 1em 0; } Checkboxes & Radio Controls Embarrassing
  • 82. THE FEATURES OF HIGHLY EFFECTIVE FORMS .confirmation label, .radios label, .checkboxes label { margin: -1em 0; padding: 1em 0; } Checkboxes & Radio Controls Embarrassing
  • 83. THE FEATURES OF HIGHLY EFFECTIVE FORMS .confirmation label, .radios label, .checkboxes label { margin: -1em 0; padding: 1em 0; } Checkboxes & Radio Controls Embarrassing
  • 84. Don’t fall into the custom control trap.
  • 85. on
  • 87. VHelps users avoid (and fix) errors
  • 88. Let users know when a field is required.
  • 89. THE FEATURES OF HIGHLY EFFECTIVE FORMS <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
  • 90. THE FEATURES OF HIGHLY EFFECTIVE FORMS <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
  • 91. THE FEATURES OF HIGHLY EFFECTIVE FORMS <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
  • 92. Provide useful hints as to the type of response you’re expecting.
  • 93. THE FEATURES OF HIGHLY EFFECTIVE FORMS <label for=“pattern”>Enter three numbers followed by
 two letters</label> <input id="pattern" name=“pattern” pattern=“d{3}[a-zA-Z]{2}” placeholder=“e.g. 123ab” > Suggesting a response
  • 94. (The placeholder is not
 a substitute for a label.)
  • 96. LUKE WROBLEWSKI Our participants were faster, more successful, less error-prone, and more satisfied when they used the forms with inline validation. http://is.gd/inline_form_validation
  • 97. LUKE WROBLEWSKI 22% increase in success rates 22% decrease in errors made 31% increase in satisfaction rating 42% decrease in completion times 47% decrease in the number of eye fixations http://is.gd/inline_form_validation
  • 98. THE FEATURES OF HIGHLY EFFECTIVE FORMS <label for=“first_name”>What’s Your First Name?</label> <input id="first_name" name=“first_name" required aria-required=“true" > Indicate Required Fields
  • 99. THE FEATURES OF HIGHLY EFFECTIVE FORMS <label for=“email”>What’s Your Business Email Address?</label> <input type=“email” id=“email” name=“email”> Use Native Validation
  • 100. THE FEATURES OF HIGHLY EFFECTIVE FORMS <label for=“flight”>What flight are you looking for?</label> <input id="flight" name=“flight” pattern=“DLd{2,}” placeholder=“e.g. DL5407” > Use Custom Validation Schema
  • 102. THE FEATURES OF HIGHLY EFFECTIVE FORMS <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> Provide Inline Error Messages
  • 110. <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>
  • 111. THE FEATURES OF HIGHLY EFFECTIVE FORMS <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> Provide Inline Error Messages
  • 112. THE FEATURES OF HIGHLY EFFECTIVE FORMS <li class="text validation-error"> <!-- field with an error --> </li> Provide Visual Feedback of Errors
  • 113. THE FEATURES OF HIGHLY EFFECTIVE FORMS li.validation-error { color: #922026; } li.validation-error input, li.validation-error select, li.validation-error textarea { border-color: #922026; } Provide Visual Feedback of Errors
  • 114. THE FEATURES OF HIGHLY EFFECTIVE FORMS .validation-error label::before { content: “x "; font-family: Verdana, sans-serif; speak: none; /* The future! */ } Provide Visual Feedback of Errors
  • 115. THE FEATURES OF HIGHLY EFFECTIVE FORMS The Features of Highly Effective Forms ๏ Consider the conversation ๏ Choose your words carefully ๏ Make good markup choices ๏ Lay out fields with purpose ๏ Help users avoid (and fix) errors 159
  • 116. THE FEATURES OF HIGHLY EFFECTIVE FORMS Further Reading ๏ “Web Form Design”by Luke Wroblewski (Rosenfeld Media) ๏ “An Extensive Guide To Web Form Usability”by Justin Mifsud
 https://www.smashingmagazine.com/2011/11/extensive-guide-web-form-usability/ ๏ “Optimizing forms for greater conversions”by Maya Nix
 http://blog.usabilla.com/optimizing-forms-greater-conversions/ ๏ “The Definitive Guide to Form Label Positioning”by Jessica Enders
 http://www.sitepoint.com/definitive-guide-form-label-positioning/ 164