Common Sense and Opt In

Why do sites insist on making people click a "Remember Me" checkbox? Unless you're a Hotmail.com with a highly-mobile user base on public machines, most of your users are coming from the same machines -- their own -- over and over. Make it an option, but save your users a click and turn it on by default.*

You are not doing anyone any favours by using the opt-in philosophy on this issue. That checkbox stores a cookie. On the user's machine. The act of remembering preferences in the form of cookies is not gathering information on surfing habits. If the issue is the perception of privacy, then educate your users about cookies. If you care about privacy, provide a button to delete cookies previously stored by your site. This solution is useful to the user. It is empowering.

Of course this does not only apply to remembering usernames. Provide and remember all preferences, even without a login. Let the user pick the skin for your blog or the colour-scheme for a site. And remember it. By default. Provide an option to turn it off (deleting cookies will do just fine), but do not charge extra clicks to use features in the first place.

Deleting cookies is as simple as setting a cookie's expiry date to something before now. Here is how it's done in my Amazon Link Generator:

private sub Del_Cookie_Click( s as Object, e as EventArgs )
dim userCookie As New HttpCookie("erobillard.com")
 userCookie.Values("amazonAssociateID") = ""
 userCookie.Values("lastASIN") = ""
 userCookie.Values("lastVisit") = ""
 userCookie.Expires = DateTime.Now.AddDays(-1)
 Response.Cookies.Add(userCookie)
 DeleteConfirmation.Text = "Cookies deleted."
end sub

And in the body section:

<td>
    <asp:Button runat="server" id="Delete"
        OnClick="Del_Cookie_Click" 
        tooltip="Use this button if you do not want to keep your preferences between visits (stored on your own machine as cookies which expire in 90 days)"
        Text="Delete my cookies" />
</td>
<td>
    <asp:Label runat="server" id="DeleteConfirmation"
        text=" " forecolor="red" />
</td>

Thanks in advance.

*Clarification 2003-05-08

No Comments