Scott Hanselman

Stop Doing Internet Wrong.

June 14, 2013 Comment on this post [151] Posted in Mobile | Musings
Sponsored By

Some days...some days it's frustrating to be on the web. We're compiling C++ into JavaScript and running Unreal in the browser but at the same time, here in 2013, we're still making the same mistakes. And by we, I mean, the set of web developers who aren't us, right Dear Reader? Because surely you're not doing any of these things. ;)

All of these are solvable problems. They aren't technically hard, or even technically interesting. I consider these "will-required" problems. You need the knowledge that it's wrong and the will to fix it. As users - and web developers - we need to complain to the right people and help fix it.

Redirecting a deep desktop link to a mobile home page

Google has decided that the practice of taking perfectly good deep links like foo.com/something/deep, detecting a mobile device, then redirecting to m.foo.com is user-hostile. In fact, the GoogleBot is going to declare these "faulty redirects" and ding sites in the search result ranking. Stated simply:

Avoiding irrelevant redirects is very easy: Simply redirect smartphone users from a desktop page to its equivalent smartphone-optimized page. If the content doesn't exist in a smartphone-friendly format, showing the desktop content is better than redirecting to an irrelevant page.

For example, if I want to go to the http://www.mcmenamins.com/Pubs page, but I do it on mobile, they ALWAYS redirect me to /mobile. Always. Even though I have a quad-processor pocket supercomputer with gigs of space I've still surfing a second-class internet.

image image

I don't want your crappy app

That means you Quora. I am in my browser, unless I'm going to the App Store, let's assume if I'm in the browser, I want to be on the web.

You suck Quora

Giant Interstitial Ads

I'm looking at you, Forbes.com. I GET IT. YOU HAVE ADS.

Interstitial Ads are Evil

Stay classy.

Labels for Input Forms

I hate seeing a checkbox and only being able to click on that exact checkbox.

<p>Which fruit would you like for lunch?</p>
<form>
<input type="radio" name="fruit" id="banana" />
<label for="banana">Banana</label>
<input type="radio" name="fruit" id="None" />
<label for="none">None</label>
</form>

It's so easy to just associate a label with an input. Please do  it, then we can all have something larger to click on.

Breaking Hyperlinks

We're still doing this. Haven't we learned that Cool URIs Don't Change? It was true in 1998 when that was written and it's true now. The web as we know it was created in 1990 and made truly open in 1993 and the link to the First Web Page (yes, Capital Letters) is still http://info.cern.ch/hypertext/WWW/TheProject.html. I love that they've done the work to keep that link alive.

There's just no excuse for this. With .htaccess files and web.config files, maintain a list of redirects and do your best to test them. Maintaining deep and complex links can be complex, but if you're companyname.com/about link dies because you switch from PHP to Rails, there's just no excuse for that. I'm your User and I have always typed /about. Don't' give me a To Do like "Update your bookmarks!" I didn't come here for a To-Do, I came her for your damn about page. YOU figure it out.

image

Click the Flag that represents your Language

I've often been asked to "select my language" from a list of country flags, and ended up clicking on the Union Jack to represent "English." I'm sure the actual English don't appreciate an American declaring they speak English. ;)

Nothing says pick a language like all the United Nations Flags

but I know I'm not the only one who realizes that a Flag is a lousy representation of a language, especially since your browser is announcing what languages you speak with every web request.

Accept:text/html
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8

There can be a whole list of languages in the Accept-Language header, in the order the user prefers them!  Use that data, it's there for you to use.

You know my Zip Code, why am I entering my State?

For folks living in the states, we're always asked to enter our postal code (ZIP code) and our city and state, even though there are dozens of great APIs and Databases that can give you that information.

Don't make me enter my state

The meta-point is this: If you can reliably determine something from the user (language, location, country, preference) without invading their privacy, do it! Save them a little time!

Resizing Giant Images with width and height attributes

Perhaps take a moment and remind your boss that the 6 megapixel photo that he or she took with their new Canon EOS is not a good background image for your corporate site...especially if it's a 4 megabyte JPGs.

Oh, that's OK, we can just <img src="bigassfile.jpg" width="100" height="100"> and that will make it smaller. No, that just downloads the giant file and then makes your browser do the work to resize it on the client.

Big ass picture

Resize first, and squish often. Also run all your PNGs through PNGGauntlet or PNGOut.

Serving pages from both www. and naked domains

If you've got example.com/something AND www.example.com/something both serving up the same content, consider "canonicalizing" your URLs. You can do this with rel="canonical" in your META tags, but that only hides the problems and makes the Googlebot happy. Instead, why not PICK ONE and serve a 301 redirect to the other? Did you know that there are rules built into IIS7 that will set this up for you? You can even remove your .aspx extension if that makes you happy. You can do it!

image

The same is true if you do the same thing for / and /default.html. Pick one if you can, and redirect the other.

<system.webServer>
<rewrite>
<rules>
<rule name="CanonicalHostNameRule1" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" matchType="Pattern" pattern="^hanselman\.com$" ignoreCase="true" negate="false" />
</conditions>
<action type="Redirect" url="http://www.hanselman.com/{R:1}" redirectType="Found" />
</rule>
<match url="blog/default.aspx" />
<action type="Redirect" url="blog/" redirectType="Found" />
</rule>
<rules>
<rewrite>
<system.webServer>

Others?

What are some great examples that you think Break The Internet...but that are easily fixed if we have the will?


Sponsor: Big thanks to RedGate for sponsoring the feed this week! Check out Deployment Manager – app deployment without the stress. Deploy .NET code & SQL Server databases in one simple processfrom a web-based UI. Works with local, remote and cloud servers. Try it free.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Hosting By
Hosted in an Azure App Service
June 14, 2013 4:50
Using arbitrary (from a user's point of view) file extensions like .aspx in your page URLs :)
June 14, 2013 5:01
Awesome! Bookmarked for future web. I'll be sure to do the web right just for you Scott :D!
June 14, 2013 5:05
How could you be mad at a 404 if Octocat is the one telling you?!

June 14, 2013 5:08
Always curious how to deal with naked domains. Would always wonder why Google was indexing www.example.com on some of my sites and example.com on other sites. Redirect to www it is!
June 14, 2013 5:20

I blogged about a bunch of common usability issues. http://examinemysite.com/blog/category/Web-Usability


For the web sites which pop up a modal window informing the user about their 'great' mobile app, may I suggest that you do not do this at the user's first visit to your site but use a counter in their cookie and pop it during their x visit. There are many sites which I use infrequently and I don't wish to install their app, no matter how great it is. I install apps very judicially.

OR

put a link on the site about the mobile app like in the page's footer.
June 14, 2013 5:27
Great list, Scott! There's only one thing that I'd add... people need to stop using really bad drop-in tablet theme systems to create faux app interfaces for their websites. The worst offender in that category is OnSwipe, which manages to consistently offer a user experience that is worse than simply visiting the equivalent desktop site.
June 14, 2013 5:29
All great points. I'd like to add hijacking the back button redirecting me back to the page I was trying to leave from.
June 14, 2013 5:32
Great article, the only thing I would add about canonical meta tags is that there are cases where a redirect isn't desired - if you have two intentionally different domains that you reuse some content and only want searchbots to use one. But in many cases you are right! :)
June 14, 2013 5:40
I agree with Jeff, back button hijacking is horrible. My current project had all kinds of managers and others suggesting that as a solution to a problem. I literally had to tell them, "Don't break the internet"
June 14, 2013 5:41
OnSwipe is evil.
June 14, 2013 5:45
- If you have crazy ass password requirements (which you display when joining), display them as part of the 'password incorrect/failed login message'. At least give me a hint that the password I created had to have a number & a uppercase character.

- This is an IOS thing, if I zoom in on a page, then navigate to another page on the same domain, remember my zoomage.

- Small one, why waste bytes/bandwidth. Sites that serve a chunky 404 page when the browser requests favicon. Also, http compression is a no brainer these days.

- Once I've answered a captcha correctly, don't ask me again on the next form, I'm human.

I'm turning into a grumpy old man.

June 14, 2013 5:49
When you show a advertising video before the actual video, the advertising video is delivered immediately, then when the ad finishes, you wait x seconds while the actual video has to buffer.

Hey, who moved my cheese ?


June 14, 2013 5:52
Take the time to write validation so that credit card numbers can be entered with our without spaces! Bonus points for inferring the card type (MC, Visa, etc....) by looking at the first number. No need to ask for this.
June 14, 2013 5:54
@Martin: Techy file extensions might be arbitrary from the user's point of view, but the CMS' point of view takes priority. Browsers could probably hide these extensions the way most of them now hide the http://, but they still won't hide the CRUD in the middle of the URL on sites with dynamically generated content.
June 14, 2013 5:55
1. _target. The user can and should be the one who chooses where to open links! 2. Pop-up windows instead of beautiful modal-windows.
Tae
June 14, 2013 5:59
I've got one to add: Auto-playing movies or music on the page. Especially annoying since I usually listen to music while I work. Even worse is if it's within a Flash Object and you can't turn it off.

June 14, 2013 6:13
Completely agree with the Forbes point... I almost avoid links from them when googling b/c of that gaudy ad screen!
Al
June 14, 2013 6:20
If you host your login form on a http page that posts to https does not mean it's secure
June 14, 2013 6:35
Here is one: requiring a post code or ZIP code for international addresses. Astonishingly, not all countries use post codes. Have to say, U.S. websites are particularly bad at doing this.
June 14, 2013 6:47
I think failing to put tab order on forms is annoying. I should be able to finish most forms without removing my hands from the keyboard. Also, I am very much used to being able to hit enter and have the currently focused form fire its submit events.

One thing I love is when sites accept either your username or email address to authenticate. I have tons of different logins, a little visual clue reminding me which credentials to enter - be it a funny logo, or parenthetic text saying to use my email - really helps with speed.
June 14, 2013 7:26
One thing that's been bothering me for a while now (more of a pet peeve) is having to choose the type (Amex, VISA, MC, etc.) of Credit Card when the card number actually dictates which type of card it is. Also, when sites list full month names for the expiration date instead of (or along with) the value of the month. (01,02,03) but some list (January, February, etc.) ... (01 - Jan., 02 - Feb.) would be ideal. :) Pretty minor in the grand scheme of things ... but still a little annoying.
June 14, 2013 7:33
There are problems with using the Accept-Language header--primarily, no browser that I know of offers an easy UI to set this header. If they send it, they most likely divine it from the user's OS locale settings. And then you run into the problem of whether or not the translation is any good; someone may offer a site in your preferred language, but it's entirely possible that you'd get a better experience with content in a language you preferred less but was better translated or was the original content. And what do you do if you don't own the device you're using and can't set the language to something else? So yes, in an ideal world, Accept-Language would work well for this sort of thing, but in practice, I'd say it's close to useless without additional UI for overriding it.

Heck, we can't even get it right when we try to use it with the machine-readable part of the transaction:
http://bitworking.org/news/WebServicesAndContentNegotiation
http://norman.walsh.name/2003/07/02/conneg
June 14, 2013 7:40
I hit another one type of these today, which I'll call "geolocation-jacking" I try to reach the Monster dot com site, and every time I try to reach the the non-localized site, it would redirect me back to the location choosing site. Maybe just a bad http permanent redirect, but annoying to no end.
June 14, 2013 8:02
I used to agree 100% with the image resizing rule, but it's not quite that simple these days. Ironically some of the abusers now have great retina/HiDPI support!

In cases where bandwidth is not an issue and the browsers do smart resizing, it may actually make sense to send the high-res version and let the client present it in the best way possible.

That being said, neither solution is perfect. Adjusting more intelligently is obviously better for lower bandwidth and lower end device situations.

Just something to think about.
June 14, 2013 8:39
Slideshows. I hate slideshows! Just let me read what you want to tell me about without clicking through countless screens.
June 14, 2013 9:16
Nice read Scott.

Just a thought, maybe in addition to the not so good examples that you've listed here you can add examples of some websites that do things right, that from your point of view you think developers should follow. Where you would say something like "if you are a good web developer your sites should look like this ... or that ..."
June 14, 2013 9:31
Great article. Thanks!
Probably one typo in your code example for Labels for Input Forms.
<input type="radio" name="fruit" id="<b>None</b>" />, the capital N only works in IE but not for firefox and chrome.
June 14, 2013 9:38
Microsoft are among the worst for permalinks. Can't you talk to those guys or something?

Also web pages should not have "intro" pages any more. I can't believe I still see those.
June 14, 2013 9:45
One that gets me is articles where I have to click through three or four pages to read the whole thing. I want it on one page ... so what if it is long.
June 14, 2013 10:03
Good luck fighting the native app over web app trend. Marketers are loving the geodata they get with the app. Plus they can tell what other apps you have. They also like the push updates which give them a higher (and controlled) number of "drive bys". Sure it is an artificial stat, but they like to feel like they are doing something important.
June 14, 2013 10:21
regarding "Language Flags": it's even worse with austria (we should click on german flag ... yeah sure *facepalm*), because the austrian flag looks kinda like the Latvian one. also the whole thing looks ridiculous in the first place and not simple & clean at all.
June 14, 2013 10:31
I think that marketing departments are the reason there is so little magic in postal codes handling. The fear of getting the address just slightly wrong stops the innovation on that front. That is my experience at least. We tried 1 service and it got some cities wrong, so the marketing department closed that door fast.
June 14, 2013 11:04
Thanks for the article . I agree on the flag part, but to add insult to injury many of the larger companies offer a choice of countries on the start page and only name eight nations within Europe as a choice. How can I tell where I live if my continent is listed but my country was too much of a bother? I usually end up pretending to be a US citizen as the web experience tends to be slightly better on US pages (on average). BTW this could easily be fixed by adding a 'global' site/site button.
June 14, 2013 11:08
Frames. And worse, frames inside of frames. EVIL!
June 14, 2013 11:55
I agree with Nathaniel about Accept-Language. It might work in countries where they only speak a single language, but here in The Netherlands we're practically bilingual and I'd rather use the English version over the Dutch, simply because the translations are usually horrible and therefore confusing. I want the well-known English terms, not the translated, never-used Dutch ones.
June 14, 2013 13:11
Just to pick up on the flag thing also. I'm from England and dislike the use of flags for language. I mean people assume the Union Flag means English whereas it should be the St. Georges Cross. Welsh and Scottish have their own flags for their languages so it only makes sense. Rant over

On another note, sites that are completely in flash. I thought we'd moved on past this.
June 14, 2013 13:34
As for me currently .NET developers have a big gap in their knowledge because behind all the frameworks they are don't know a lot of basic stuff for example http error codes etc. But at the same time they are great developers who know how to make ASP MVC 4 website in a 30 minutes but any step in the wrong direction make them scared.
June 14, 2013 14:12
The only problem with pre-filling cities based on zip is there can be multiple cities/counties in a zip code, somwhere around 20% of the time. You (Scott) probably haven't noticed since you live in a more urban area. So always returning the first city/county is a bad user experience. To be truly accurate and user friendly you would need some sort of div to contain the results, if more than one, and allow the user to select the proper one.
June 14, 2013 16:20
Links that aren't actual links. I'm looking at you, webforms website where an "edit" or "details" button does a POST, or certain "single page javascript apps". People should be able bookmark your site, and open different pages in different tabs.

Using GET requests that modify the state of the your application (like a delete link).
June 14, 2013 16:28
The Flags made me laugh, being English(UK). One of my Pet hates is being offered English(US) when no other English is even offered....
Mat
June 14, 2013 16:33
when I get content not available on this device, when browsing from my smartphone when I find just digging a little in the website will give me the content...
June 14, 2013 16:52
A big bugbear of mine is email address validation. Soooooo many sites don't allow the full range of acceptable characters for the local part of the address. I make heavy use of the + symbol (e.g. myaddress+hanselman@gmail.com) so that when I start getting spam I know who is selling my email address.
June 14, 2013 17:04
> There can be a whole list of languages in the Accept-Language header, in the order the user prefers them!

Real users neither know nor care how to configure Accept-Language headers. And in an Internet Café you might just get the preferred language of the previous tech-savvy customer.

A multilingual site should always provide some kind of UI to switch languages.
Joe
June 14, 2013 17:15
Four flags to represent basically one langue, Serbia-Croatia-Macedonia-Slovenia, Germany-Austria, Russia - Ukraine. What if you show Swiss flag, what is it than German, French or Italian?!?

June 14, 2013 17:25
Nice article Scott, i really like the portion about flags for languages. As an added point to this, i think it's important to note that Canada does speak french, so the canadian flag is not for english only.

Furthermore, i think something that is missing from your article is a very dangerous point that many integrators and programmers fail to follow: Accessibility and graceful degrading. I have to make my point once if not twice a month in my agency regarding this point. Broken javascript should not prevent your from using a site. I think a whole article on the subject would be good actually.
June 14, 2013 17:25
The single worst crap that has ever or will ever exist on the internet:

meta http-equiv="X-UA-Compatible"
K
June 14, 2013 17:43
Short maximum password length. Why do you need an upper limit?

Not mobile friendly.

Mobile friendly sites that do not provide anywhere near the same info as desktop sites.

Finally my biggest pet peeve, although not strictly breaking the internet, regional pricing. Many companies (eg Apple, Microsoft & Adobe) charge Australians 40+% more for digital products compared to US customers.
June 14, 2013 17:43
I use a custom chromium build where the default view of all pages is the source, not the rendered HTML, so some of these problems are particularly annoying to me.

Other times I just surf the web the normal way: using fiddler.
June 14, 2013 17:53
Good advice, mostly. But zip codes are HARD. see wikipedia about them. Sometimes you can't tell what state from zip, and often you can't tell what city. Best to ask the redundant question (only if you really need to know -- nosy forms are their own problem).
June 14, 2013 18:12
Re: Link Canonicalization: The only solution is to periodically run a spider like Xenu Linksleuth and make sure your links are in order.

The ethnologue website, despite its latest redesign continues to suffer from link Canonicalization woes. The entire website assumes links are case insensitive and runs as such, however spiders do not see it that way. Every link has a canonical URL ending with /***EDITION*** despite that the actual site links aren't like that. Furthermore there is a cache buster on lightbox.js on every page.
P
June 14, 2013 18:20
Flash based, restaurant sites or a restaurant/local business site that doesn't clearly give me a link to their phone number or address.

Continuous scrolling list of arbitrary content -> reading arbitrary content -> going back to list of arbitrary content -> doesn't bring me back to where I left off.

._.
Ed
June 14, 2013 18:44
All good points.

Add: Pages that prevent zooming.
June 14, 2013 18:59
If you think interstitial ads are annoying, try frequenting sites with pop-up ads that completely block the page. Mobile Chrome suffers a bit extra on those as it's is sometimes possible to scroll past the (X) close button before the ad blocks the ability to scroll - thus leaving only the option to use the back button as Chrome menu bar only shows when you scroll up.

Advertisers: if you don't want people to use as blocking software, then don't make your adverts obtrusive and annoying.

I'll also add "sites that require you give an email address", which thankfully this site doesn't do.
June 14, 2013 19:12
http://www.hanselman.com/blog/StopDoingInternetWrong.aspx

Did you know that there are rules built into IIS7 that will set this up for you? You can even remove your .aspx extension if that makes you happy. You can do it!
June 14, 2013 19:26
Do not force me to have a Facebook account (which I don't) in order to sign into and use regular web sites. I absolutely hate that.

A user can't even upload a profile pic to Spotify w/o requiring the Facebook API. Too cheap/lazy to hire a developer to write their own file uploader for their users?

Requiring Facebook to do anything standard on the web, like shop, comment, login, etc. is just as dumb as requiring an AOL "Keyword" instead of a normal email address.

Aren't the awful proprietary AOL 1990's over? Didn't open standards and www pages win? I'm having my doubts.
June 14, 2013 19:31
It is much easier to incorrectly input a zip code than it is a state...
June 14, 2013 19:42
Imgix sounds like a really promising way to handle images and scaling with minimal effort. Has anybody heard of them or had experience with them?
June 14, 2013 19:52
There is another problem with Accept-Language. When you are browsing internet then pages are offering you automaticly translated content (MSDN also does that) according to your language.
Well, I don't have to say that this translation is not perfect. To get rid off it, I changed my Accept-Language to english. So in my case this information is not meaningful anymore.
June 14, 2013 19:55
The worst implementation for language selection I've ever seen: Automatically selecting language by your location (IP address), then listing all available languages' names in that particular language.

"So, what's English in Chinese?"
June 14, 2013 19:55
The term I'm fond of for resizing the many-megapixel image with HEIGHT and WIDTH attributes is "dumbnail".
June 14, 2013 20:15
1. This is Facebook-specific, but I know I've run into the same problem with other sites/apps: Options that are unavailable or changed depending on whether you're in the full-Monty desktop site, mobile version or iOS app.

2. Sites that offer to save your ID/PW for future visits often remember that data even after it's changed. I update my password, enter it into the login screen, but it has already remembered my old password, rejects my login, then fails to remember the new password.

3. My apologies if this is too specific, but if I use Yahoo as my default search engine in mobile Safari, enter the search term 'Yahoo' in the search box, then click on the result "Yahoo! Search - Web Search", I get the mobile search page, and am then immediately redirected to the desktop Yahoo with the message "Sorry, the page you were searching for could not be found on Yahoo! Search." Not a confidence-inspiring experience.
June 14, 2013 20:25
It breaks the internet when the secure flag is not used with authentication cookies (and therefore not using SSL for sensitive communication).

Also, while it doesn't break, something simple that *strains* the internet is the lack of reasonable caching for static resources.
June 14, 2013 20:27
Terrible search engines drive me nuts, with how well google custom searches work their is simply no excuse.

Ads with sound mean I'll close the tab and never go near your site again.

Using Flash when it really isn't necessary.
Rob
June 14, 2013 20:27
As a Norwegian, please don't base your language selection on my browsers language settings. I almost always prefer English, unless you can guarantee that the Norwegian version its up to par with the English one.
June 14, 2013 20:28
Automatic focus on the first (username) field of a login form!
June 14, 2013 20:33
Interesting that you write a post telling other people to stop "doing internet wrong", yet you have the nerve to do it on a web site that doesn't fit on my screen...
June 14, 2013 20:43
I prefer that I get a mobile-specific web site from my phone, since my phone's screen is much smaller than my desktop. Plus, touch is far less accurate than a mouse click. Why not redirect to it?

(One problem with the login page of my bank's mobile site was, apparently, not tested with Windows Phone 7.5's IE, since I always have to zoom in to click the password field. When, oh when, will WP sales catch up to iOS and Android???)

I haven't done much HTML lately, but back in 2000, I discovered that I can make the CheckBox Label usage even more "contained" (Please correct me if I've mis-remembered):


<input type="radio" name="fruit" id="banana">
<label for="banana">Banana</label>
</input>


I like this because it allows me to think of the label+checkbox as a single unit (as it really should be), as I did in Win32, WinForms, WPF, etc.

June 14, 2013 20:46
Good list Scott. I loved the "first web page" link. I viewed the source on it and was surprised to find a slew of HTML tags I didn't recognize. The source should be admitted to the Smithsonian.
June 14, 2013 20:48
Following on from Tae's comment about _target. One egregious offense on this very page - opening a javascript popup thing when I click on an image is bad enough and shouldn't be done. Doing the same interception on a middle click, which means that I very explicitly want to open it in a new window, is unacceptable.
June 14, 2013 20:54
Anybody else find it ironic that this URL has a .aspx suffix?
June 14, 2013 20:58
I haven't done much HTML lately, but back in 2000, I discovered that I can make the CheckBox Label usage even more "contained" (Please correct me if I've mis-remembered):


<input type="radio" name="fruit" id="banana">
<label for="banana">Banana</label>
</input>


I like this because it allows me to think of the label+checkbox as a single unit (as it really should be), as I did in Win32, WinForms, WPF, etc.

I PREFER that I get a mobile-specific website from my phone, since my phone's screen is much smaller than my desktop. Plus, touch is far less accurate than a mouse click. Why not redirect to it?

(One problem with the login page of my bank's mobile site was, apparently, not tested with Windows Phone 7.5's IE, since I always have to zoom in to click the password field. When, oh when, will WP sales catch up to iOS and Android???)
June 14, 2013 21:12
Resizing images can be fine - as long as you save it at low-quality. The browser resizing will generally cover up the artifacts of saving a 0% quality JPG, but you've made a giant-resolution image smaller than a high-quality, appropriate-resolution equivalent. I had a responsive design expert suggest saving one copy of your responsive images at 2.2 times the largest target resolution as 0% quality JPGs and letting width/height attributes take over from there.

@John Tasler: HTML <input> tags are like <img> and <br> tags - they are empty tags. Putting content inside empty tags is not technically allowed, weird things will happen if you try.
June 14, 2013 21:16
Scrolling all the way down a page to view all the content/results (good), and now I want to see navigate elsewhere (filter these results,etc)...I have to scroll all the way back up again just to get to my options again (bad).
Nat
June 14, 2013 21:18
I have 2 to add to your list:

1) Don't present users with preset password reminder questions. ESPECIALLY if they are specific to a point-in-time. "What is the name of your favorite [pet]/[food]/[Movie]/[etc.]?".

These things can be superceded. If you dont remember your password you may not remember what the answer to the question was when you created your account.

2) Don't store user passwords [or other sensitive data] in clear text [or even encrypted with a reversable algorythm]. Nothing scares me more about a web site than when I click the forgot password link and I get an email with the password I typed. if they are overlooking that security basic ... what risks am I running ordering from them?
June 14, 2013 21:25
Uhhhh the language header. That's not always the best advice. It can lie because your current modern generation of non-native English speakers all run English installs because they're speak English fine and dislike their own localisations of operating systems/browsers.

This means that 95% of my users from Iceland state they're English from the browser data I get, yet only 1% of my client base switch the language of the site to English (I have to default to Icelandic).
June 14, 2013 21:34
Quora is a pest.

- Requires real names
- Requires signing up to READ stuff
- Obnoxious as fuck if you don't
- The App thing you mentioned

Just use one of the Stack Exchange sites instead. Seriously. There is one for pretty much everything. And you can use a nickname and read everything without signing up - hell, on most sites you can ASK stuff without registering.


Disclaimer: I'm a Stack Overflow mod.
June 14, 2013 21:41
DEATH TO FILE EXTENSIONS!! There's absolutely zero-need for them anymore, except when explicitly downloading files, and even then, it's an homage to CP/M-heritage operating systems (I'm looking specifically at you Windows users here).

For all other links, you can make them resources inside a directory. This gives you the advantage of using whatever technology you want (static HTML, dynamically-generated HTML, JSP, ASP, whatever) without having to leak that implementation detail into the URL. The link http://example.com/foo/bar stays the same, regardless of whether you use .../foo/bar/index.html or .../foo/bar/index.aspx.

It also lets you incrementally upgrade your site completely transparently to your end users -- you never have to take the site down.

I can't tell you how many times I hated links breaking because the site administrators decided ColdFusion wasn't worth using anymore.
June 14, 2013 22:20
I saw you had the South African flag there as an example of "pick your country via flag". South Africa has 11 official languages, so showing our flag once makes no sense!
June 14, 2013 22:40
I agree with all that except for the zipcode.
UX tests have shown that trying to guess address data based on zip/postal code is bad. Aside the mistakes that the locating service can make, some small cities may share the same code.
Users know their address and don't have any trouble completing this information in few seconds. If you add some delays because fetching some data on a WebService, that may even slow them down and creates confusion because some data is showing magically.

Tab indexes : always have a good code semantic instead of trying to mess with the tabindex attribute. This leads to all kind of problems and destroys any re-usability or maintenance ease.

Don't add hover states to unclickable items.

Put some air in your layouts. This is not wasting any paper to use a scroll bar. Font-Size should be 13px or more with a decent line-height.

Target _blank is bad in most cases, if not all. I'll open a new window/tab if I want one! Don't worry, if the user have the intention of coming back to your site, he will hit the back button (instead of having to find the right tab when many are already opened).
Most of the time this "technique" is used to inflate analytic data.I know you want high stats on the visits duration, but keeping the site open and hidden behind the new window will not give you the real data, hence breaking the advantage of collecting it. Analytics data should give you hints on improving the site; it's not for showing fancy charts and graphics to your client.

June 14, 2013 22:43
- Websites that are usually from huge conglomerates where you click on a link for a section and they spin up a new browser tab/window. I realize you do a lot of things, but there is no reason each part of your company needs its own browser tab!


- Providing instructions for how to enter in a number and also validating that it doesn't contain any of the illegal characters (like hyphens or spaces in a phone number) when it would be far more elegant and not that much harder to just write the logic to remove the offending characters. We should be asking the user to enter in the number like they are used to seeing it in the real world.

- Writing out the credit card expiration months even though every credit card on the planet lists the month as a two digit number.

- I waiver on autodetecting the credit card type based on the first digit, because I've always assumed the reason it asks for you which credit card is a confirmation that the user is entering in card information that the vendor accepts. If the vendor accepts only MasterCard/Visa and the user has a AmEx card, the user knows right away this won't work for them.

- Bank websites tend to be the ones that accept the most limited and weakest passwords. Eeek!
June 14, 2013 22:50
Even worse than the whole ZIP code thing is allowing address form submissions from countries that are not USA and then doing things like still requiring a state be picked from a list of US states, still requiring a valid US ZIP code be entered [90210, thanks TV!], or the dreaded "Sorry, US only" after we've jumped through god-know-how-many steps to fill in the form.
June 14, 2013 22:50
Absofrickenlutely -- determine information automatically and if you don't need private information don't ask for it!

Part of your statement is a bit counterintuitive though. Looking up someone's address based solely on postal code (or reliably determining similar information from other data) may be more privacy-invasive than directly asking for it because the user doesn't have the option of opting out of the look up. Though I suppose you didn't say address, but rather the state which is potentially less focused.

From an experience perspective I wonder which would be better. Ask for address and postal code and determine state/country, or ask state and postal code and determine address (in Canada postal codes can easily apply to just half a dozen street addresses).
June 14, 2013 22:52
Lazy load images. Save my bandwidth while on mobile.
June 14, 2013 23:15
You know, if Andy Rooney had been net-savvy, I could totally see him doing this article, almost verbatim.
June 14, 2013 23:18
Regarding ArranM's post, image hosts seem to be flush on bandwidth without regard for mobile users in particular, but also those with modest but not great broadbans.

They ought to at least encourage their users to downsize their ridiculously huge camera phone images, hell, even give them some tools to crop the image client side, THEN upload. Not a huge deal for me as I don't browse much by smartphone, unless I happen to be torrenting and I click an image to find it loading like I'm on a 2400 baud modem in the early 90s. Is that a finger? Arm? Sideboob?? Nope, it's a freakin' cat.

AdBlock Plus (particularly its Element Hider) and Ghostery have been great tools in the battle against lots of ads, annoying floating social networking buttons that I never click anyway, and interstitial garbage.
June 14, 2013 23:26
Also: Don't require US Zip-codes if you offer services for the whole world. I'm from Germany, what should I enter? :D
June 14, 2013 23:33
Not to mention:

Non secured login pages (yes please send my password unsecured over the internet!)

You have SSL but don't use it on the rest of the site (yes no problem to send my address and personal info unsecured over the internet!)

No possibility to delete your account (yes I want to look into every option of account settings and the Help/FAQ pages to find out this is impossible...)

No possibility to order tickets without setting up a whole new account with all my personal info etc. (Yes I want 2 tickets for 'Band playing once' an account I can't delete and spam from your theater please)

The only possible way to get a new account is via another website I don't use (Yes off course I want a new Facebook account to use Spotify)

Don't say a word to your users when your website is hacked and all data is stolen. (yes I want to read it a week later in the news that my T-mobile/Linkedin account is hacked, instead from the company itself)






June 15, 2013 0:08
Breaking my keyboard experience drives me nuts.

1. Overriding browser's native shortcuts (Ctrl + something).
2. Especially, adding a keyboard shortcut like "next/previous article" to the mouse arrow keys (I use caret browsing - F7 in Firefox - to move in the text, or [Ctrl+] Shift + arrows to highlight read text).
June 15, 2013 0:12
I'm sure the actual English don't appreciate an American declaring they speak English.

Erm, why wouldn't we? That is what you speak. I'm not saying you're wrong about using the Accept Language header, but no English person would ever get upset at an American for saying that they speak English, because it's a true statement. They might get upset if they say they speak "American", because that's not a language.
Jon
June 15, 2013 0:20
Add to that: fill-in forms that time out. I hate it when I start to fill in a long form, get called away, and when I come back, the page gives a message saying, "this page has timed out due to inactivity. You have to start over from the beginning, and you wasted all your time. Much regrets. So sorry. Have a nice day!" Ok, I'm making up part of the message, but this can be fixed by using View State, rather than session state if you do not want to set a long session state timeout. Therefore, I recommend something few recommend. Using View State rather than session state whenever humanly possible. Because View state does not time out. It is not lost if the app is recycled. It does not require chicanery like a state SQL database to make it durable. Yes, it bulks up the page a bit, but not nearly as much as these huge, stupid, animated, disruptive ads that flip across the whole view, or the stupid huge images which have no informative value that most web sites have.
June 15, 2013 0:25
Taking web development advice from a page with .aspx in the URL? No thanks!
Ben
June 15, 2013 0:52
@randy

I can't let that one slide - this is perhaps the only website I've ever seen where the size of the site scales to fit any size browser, if the browser properly handles standard code.

If your browser fails to properly handle the scaling, that's not really the site's issue.
K
June 15, 2013 1:40
Links that open in new tabs. This goes against the principles of the web because maybe not all platforms have a concept of new tab or window. Second it is very easy for people who want new tab to open stuff in new tab by shift/ctrl clicking the link but the people who want to open the link in the same tab have no choice. about="_blank" sucks!
June 15, 2013 1:45
My most-hated UX "feature" are CAPTCHA verfications. "See if you can figure out what this indecipherable crap in this tiny little box is supposed to say" is a very lame process for the user.
June 15, 2013 2:29
Just a note, zip codes aren't a 1:1 mapping in any sense (some zips span multiple cities, a few span multiple states), so it is impossible to infer city (or state!) just via zip code.
JT
June 15, 2013 3:00
Apart from having a different paradigm for managing lists on every page, Google behaves as if it stores some (not all) of your settings in the browser cache.

So, on YouTube, videos deleted from Watch Later magically reappear, and captions keep turning themselves back on.

One that is particularly annoying is restarting a paused video every time the screensaver kicks in. Pause a video to go and have dinner, it's finished playing by the time you get back.

And then there's all the stepping through pages of step by step help chasing settings on different configuration pages to accomplish something that should be possible with a single checkbox. I really think Google (and Facebook) have no overall design plan and just let every developer loose on a single page to do whatever they think is best without regard to the rest of the site.

On other sites, insisting that credit card numbers have no spaces and telephone numbers have no formatting characters (when it is trivial to strip them), or worse, insisting telephone numbers be validated as integers or a fixed number of digits.

I used to think that sites which presume US addresses were a pain, but credit card companies don't block payments from an address in the USA if all the details except country and postcode match a local address. This solves the nasty problem of software costing up to 6x as much if you live outside the USA.


June 15, 2013 3:01
Oh, and CAPTCHA that is so cryptic you still can't get past it after 6 attempts.
June 15, 2013 6:04
I must add CAPTCHAs are the single most annoying things on the Internet. Oh how many times have I cancelled the sign up process just because of impossible to read CAPTCHAs. My conclusion are only machines can read them not humans. Quite ironic isn't it.
June 15, 2013 6:58
> writes article called "Stop Doing Internet Wrong"
> gives IIS config tips

heh
June 15, 2013 9:04
trying to understand the http://computer-consulting.com versus http://www.computer-consulting.com problem and the 301 or other fixes, I created two new shortcuts with the above two addresses. The both take me to www.computer-consulting.com so what is the problem? I haven't gone to google or anyone and specified a preferred domain or done any redirects. What am I missing here?
June 15, 2013 9:12
Wouldn't Google Analytics tell me if there were a problem by showing two sets of stats for two domains? or some such indication would alert me?
June 15, 2013 9:16
My absolute worst feature on todays web is trying to accomplish a button click to move a process to the next step and finding four buttons there instead of one, all sort of suspiciously looking like they might be the one...so you experiment and pay for your gross error...find these all over the place...its not mobile first if you can't find the next button...right on Michael on captcha at least on the internet we don't have idiot women asking for your account number and then when a human answers the first thing they want is your account number...
June 15, 2013 9:19
good topic as usual Scott, but you went a little fast and furious...we need to understand the problems before you start issuing cool answers...
June 15, 2013 9:58
Okay, here is another of my major doing internet wrong:
Whether it is replying or commenting or reviewing, if we have to login or become a member before we can talk it sucks pretty much...if you don't like my review are you going to punish me...we should be able to speak without membership...you can block the problem people without their email address and username and password...
June 15, 2013 12:58
An article called "Stop Doing Internet Wrong" that forgets to mention that "Using IIS" is one form of doing internet wrong when mentioning using IIS7.

What?
June 15, 2013 17:27
One of the most infuriating things of all is unsubscribing from some mailing list (where you have no idea how you're on it) and they force you to enter not just your email address (redundant since I probably clicked unsubscribe from an email) but also password (i have no idea how I got on this mailing list, I certainly have no idea what my password is!). And then to top it off when they only offer the option to unsubscribe from that particular category of email and not every other variant of a marketing email they insist on sending.

Also one you're guilty of Scott: not using type="email" on email inputs. Battling with my phone's autocorrect to get my email address corrects. Beyond frustrating. Just to add a o that, also not trimming a string before validating. A space at the end of my email address just caused it to fail...
June 15, 2013 18:50
Good read. Agree with others on ZIP/postal codes. We solved this problem in a different way - ask for a city/town and present the list. There are challenges as well, but at least people find their city/town faster than postal/zip code :) One downside - this requires an external source to provide the data. Working example: http://emailsignup.travelalberta.com
June 15, 2013 18:54
Don't ever make 'city' a required field. Some of us still live in places not associated with any city.
Ken
June 15, 2013 21:34
Beside Accept-Language header, I think many sites also checking IP address for geolocation.

For example, Google. I'm Thai and I live in Bangkok but I don't like Thai translated website for some reason. So, even I set my preferred language to en-US, when I open google.com they will always redirect me to google.co.th unless I told them to use to google.com (the have a link to google.com directly).

Thanks for great post as usual, Mr.Scott :)
June 15, 2013 22:46
A large number of people hitting your mobile site for the first time will actually be interested in knowing you have a native app that they could check out. A good way to handle that situation is to show a banner of sorts, but set a cookie that expires 1 month out (or however long you want to wait before showing that banner again if at all).
June 15, 2013 22:54
@Ken,
It all depends on a business case. We decided to make it dead simple for 99.99% of our users, so we'll live with 0.01% unhappy about it.
June 16, 2013 4:41
The fact that my site has a .aspx is totally valid and is unfortunately historical. The CMS I use is almost 10 years old. One day I'll fix it. ;)
June 16, 2013 9:31
Excellent post, Scott, as usual. Another one that chaps my hide is having to choose what type of credit card I'm using when I purchase something. Credit card numbers follow pretty basic rules of numbering, and the type of card can be very easy to determine. Why are you making me choose MasterCard or Amex? Argh!
June 16, 2013 14:10
"There can be a whole list of languages in the Accept-Language header, in the order the user prefers them! Use that data, it's there for you to use."

This is bad. Specially whe you are holdiy in asia and use hotel's computer. Then you get all those weird chars and dont know what to do. Even in google and gmail and so on.
Simple dropdown or flags would have been better
June 17, 2013 5:32
Sites that pop out a box with a link to "You might also like..." when you've almost scrolled to the bottom of the article. Let me read what I'm reading before you pester me to read something else!

Others have addressed the "download our app!" crap, so I'll leave it at that.
June 17, 2013 5:45
Man, you .aspx and IIS snobs are something. How do you know that Scott didn't convert everything to PHP 3 years ago, and set up a handler so as to not break his links?!?!

(Well, OK, he's using dasBlog - or IS he?)

(That would have been much funnier had he not replied 3 comments above pretty much owning up to it...)

If you've seen IIS 7 or 8, you would reconsider your view that it's wrong. Leaps-and-bounds from 6, I tell ya. Leaps and bounds!
June 17, 2013 5:58
Don't obstruct the view of your page by pestering IE users to pin the site.
June 17, 2013 6:21
Regarding all the redirect stuff:
People don't do it because the tools suck. All of them.
Give them a simpler way to do this, an easier way. Don't ask them to edit complicated xml files. Xml sucks for these types of things.
You work with the ASP.NET guys, right? Get this info to them. The tools to solve this problem suck. In all platforms. Make it better.
When you decide to change your extension from .aspx to .mycompany, some tool should tell you that you should record redirects. It should be in a file that is checked into source control. It should be unit testable. All these use cases should be like that. They aren't and so people don't do it, and they will not start because you posted it on your blog. Some who read it might, the other 99.9999% won't.
Get the tools to help.

Cheers!
June 17, 2013 7:43
Javascript pop-ups (fake modal windows) where a link to a separate page could have been used instead infuriate me. It's my browser, and I'll decide how I want to see things thank you very much. If I want a pop up, I'll select open in new window or middle click to open in a new tab. When I'm presented with a modal psuedo-window, I can't look at it and the content underneath it at the same time.

What if I want to keep a bookmark to the content or send a link to a friend - how will that work if you don't have a real link, but have everything obfuscated under layers of JavaScript to make my browser no longer act like a browser?

I also have to learn a new set of rules to interact with the pop-ups on for your site: will it close with Command-W or Ctrl-W like all my other windows, or do I press the Escape key instead? If I'm a mouse user, will my normal movement of the mouse to the top left of the window find the close button, or did you move the close button to the top right because you assumed I was using MS-Windows? Or better yet did you have some secret button that's only visible if I hover over it, or a keypress that I'm expected to use my psychic powers to figure out? I've even seen sites where different popups have a close button in different positions. Do you really expect me to remember the rules for every individual site? Of course I can't - I just get it wrong every time.
June 17, 2013 9:59
I am an international person. Just because I am in France, doesn't mean that I want the French version of you website. Don't try to second guess what I prefer to speak or read by my location. Looking at you google.
June 17, 2013 13:07
I hate the flags. In Belgium 60% of the people speak Dutch, and if you happen to come across a Belgium selector flag, it will almost always set the language to French. Some are clever enough to ask if you are Flemish or Walloon, but they all forget the official German language spoken by a minority.

Skype is even worse: they use geo-ip and they set their communication language for e-mails etc using the IP used when subscribing. They only support one language per country, and guess which one they picked for Belgium... And neither you or their support is capable of changing this later on! Hopefully you didn't subscribe when you're abroad in a country which language you don't understand...
June 17, 2013 16:45
Lets all complain about old tech...and nothing we understand in this new age.

Zip codes: All 90% of all counties have these, correct? So if I type 0043 how can I expect you to know where you are?

Flags issue: Guy complains that he does not like to select flag then the next wants it due to the fact that his location is based of geo-ip, now the language that is selected to for him is wrong.

Damn stop complaining an find ways to improve this, in this age stop whining like little girls...wake up and do something about it.
June 17, 2013 17:18
When was the last time anyone referred to the www as "w3"? There it is in the very first web page. For a while, I had a web site that actually WAS w3.whatever.com, and everybody and their brother said they couldn't find my web site because they were typing www instead of w3. WTF would I use an abbreviation that saves one letter and confuses things? I actually moved my domain away from that ISP because so many people couldn't find my site even if I told them *repeatedly* it's 23 - as I wrote it, not www, as you think it.

Also people who capitalize WEB drive me nuts. It's not an acryonym. And I chuckle every time a spell checker tells me I need to capitalize internet (this one doesn't). It's nobody's name, it's not owned by anybody, it merely describes a thing, not a single thing.

Also web sites that pay absolutely no attention to keyboards and have input fields in scrambled tab order. Charles Schwab's site for most of the 7 years I've been using it has had the tab order messed up on the main screen to log in with. At one point you had to hit tab 57 times to get between the dropdown for your initial page and the check box where you tell it to remember it. This became 77, then 90, and was fixed for about a week, then broken again, and eventually the checkbox didn't have a tab stop at all, and in fact the second time around, the tab order was different from the first. Don't put tab stops on static text! Not everybody uses a mouse for EVERYTHING, in fact it's extremely inconvenient to have to take you hand off the keyboard just to go to the next input field.

Every time I use, or try to design or implement any browser based data entry, I'm reminded what a lousy data processing medium the web is. It was never designed for it, any more than cobol was designed to have a GUI. Of course that hasn't stopped *everybody* from embracing it and writing slow data entry apps that make an IBM keypunch machine seem like light speed in comparison.
June 17, 2013 17:34
What irks me is when blog posts are not clearly dated. It means a lot whether something was written within the last month or ten years ago. Similarly, when articles (such as those on newspapaper sites) are not datelined. The name of a town is not enough - which state, or which country? Eventually you can poke around and figure it out, but it would be helpful if it were made obvious from the get-go.
June 17, 2013 18:07
The biggest is passwords for me. I've had my bank not allow special characters and another bank not allow anything over 10 characters. A third one requires me to use a mouse to select things, which is annoying since I also have to enter a 15 character password to get there. I use a password manager in general, but then I have the joys of a frame inside a frame which means the domain-specific password generator doesn't always work.

Just give me a SSL cert to verify me, please?

(Loosely related, I wished more commerce/banking sites would give a standard API so I can use a website/program I like. I'd be estatic if my banks let me download data into GnuCash.)

And the second one. I have bad eyes. While websites are wonderful with their tiny, cramped text, not everyone can see them well. Contrast is also important for those with failing eyesight. Gray on gray is brutal to older folks (statistically), those who experience some eye surgeries (I have a permanent haze), and color blindness. Being aware of that helps, if anything to accept cranking up the font size on pages without breaking everything else.

But, awesome list of things to consider.
June 17, 2013 20:06
I find the asking for zip code along with city state annoying as well. And it does not help that the majority of the public does not understand it either.

1. Zip codes are collections of points rather than shapes, they do not have borders and are not subject to borders.
2. Cities and states are irrelevant to the zip code. They are more for human readability than location. They really are only used when there is a zip code / address mismatch.
3. Solely for readability, pride, and typos, a zip code can be called by multiple city names when multiple cities share the same post office. This is typical for major cities and suburbs. 53222 is a Milwaukee type 0 zip code that has Wauwatosa as a suburb (type 1). The mis-spelled variant of Wawatosa is also accepted as a type 2.

It gets to be even more fun when you start calculating taxes solely based on zip code. As zipcodes cross borders there are multiple tax rates for the same city-state-zip combo.

Thank you to the government for not making a developers life easier.
June 17, 2013 21:29
Undated content.

Don't know how many times I've seen an article on a website that has no date on it, anywhere. Not even in the URL. All too often the article starts with something like "In the past week or so..." and it's maddening. If I can't find the date it was either written or last updated then I do not read the article.
June 18, 2013 0:38
Great list.

The one that really drives me nuts lately is when I am just about to click on something on a page, and an ad or other content -- loading long after the rest of the page -- pops open just before I click and I end up clicking the ad, or just end up clicking nothing.

June 18, 2013 1:09
Ajaxy paged lists of items with detail links that don't preserve your current page in the list when clicking on a detail (by simply specifying your current page in the URL.)

For example, gameinformer.com. When you click next, then click on a detail, then use the back button on your browser, you're back to page 1. This is very irritating when I'm on anything other than page 1. Oh, but the list loads in dynamically! Cool! Not...

Related gripe -- ANYTHING dynamic that can't be recalled and served up via a URL. This, in my opinion, breaks the web.
June 18, 2013 2:04
Excellent list. Definitely saving and using for reference with future sites. My favorite one is the app suggesting, seriously annoying.
June 18, 2013 12:27
Thanks you for this, Scott, very useful!

I have a question about serving pages from both www. and naked domains: how do I redirect, knowing that my web site is a WordPress Azure website, so I can't (obviously) do anything on IIS?
June 18, 2013 13:13
The worst are sites with a moderation queue where posters don't get feedback on why their post wasn't approved.
June 18, 2013 16:31
Contact email links or contact forms that reference a mail address that are no longer monitored/valid... If you no longer monitor that address, do not put a link up (Poissy General Hospital I'm looking at you...). You can easily add a contact response page on your backoffice and never need to forward to a mailbox again...
June 18, 2013 16:39
Automatically playing audio (don't mind so much about video). I have several OS's open, each with several browsers and each with several tabs. Frequently, by the time the audio starts playing it becomes a guessing game to figure out where it's coming from. And rarely does it add value to the site.
Rob
June 18, 2013 17:55
Here are two things that bug me:

- When a website considers my tablet to be mobile. I'm using a screen that's at least 1024x768. I don't want your mobile website, I want your desktop website.

- When a CAPTCHA is impossible to read.
June 19, 2013 16:47
I always find it hysterical when sites disable the right-click button like they are being smarter than everyone else...."Ooooh....I will keep you from looking at my html or downloading my image."
Bob
June 19, 2013 20:44
The most annoying thing for me are non-unobtrusive forms. Especially during password match check. You fill out form with 20 fields, submit it and...password doesn't match. You need to go back and retype both. Or even worse: some other field was not correct, you go back to correct them and...ERROR: 'Password cannot be empty'. You forgot to provide passwords again (because usually forms don't remember them).
June 20, 2013 8:16
While selecting Flags for language is stupid .. "Accept-Language" does have flaws for multi-lingual countries.

In Canada bilingual people often will switch between English and Français depending on who they are dealing with. Switching system settings back and forth is a pain when all you want to do is view the French version of the page that you`re on.
June 21, 2013 16:53
Great article. Although I don't agree with all items, they sure make you reconsider some decisions.
June 21, 2013 22:01
But Microsoft Web Site is full of broken links.
June 22, 2013 16:08
My pet hates are forms. Use HTML 5 form elements all the time and your users will love you. What is it with .NET and forms? Why does every page have to have an embedded form with hidden fields so that normal forms cannot simply be posted?

And another .NET peeve: what's wrong with 404 and server error pages? Sorry, I know that things are changing at Microsoft but it seems that the end of "embrace and extend" has yet to reach all the ASP monkeys out there.
June 24, 2013 4:59
Please always allow the option to choose a language and never base it on browser/OS. As an expat in China it is one of the most frustrating things I regularly deal with.

Also, we do speak English, what is wrong with an English flag to represent that?
June 24, 2013 15:18
Skype is even worse: they use geo-ip and they set their communication language for e-mails etc using the IP used when subscribing. They only support one language per country, and guess which one they picked for Belgium... And neither you or their support is capable of changing this later on! Hopefully you didn't subscribe when you're abroad in a country which language you don't understand...


Like Xbox LIVE that forced us to use French for years.
June 26, 2013 21:29
The current trend of sites taking up the first 1/3rd to 1/2 of of the screen with a giant image, overlaid with text in huge font; or they skip the image and just have the huge text. Neither the image nor the text conveys meaningful information, but now I have to get through it to see the actual content.

Especially annoying on mobile.
June 27, 2013 14:23
Hello,

Remarks in the article are overall pertinent. Especially those about mobile redirection & adds in full page.

About zip code, you have to remind that outside US Zip code is not necessary for 1 location (2 villages can share the same Zip code for instance in France).

About language, I use sometime my brother in a different language that my native one, so it's convenient to be able to choose "manually".

Otherwise, again very interesting article.
Best regards
Lionel

June 30, 2013 0:25
I've stopped using software before because the website changed the English flag for the English language to the British flag.
July 01, 2013 22:09
Americans don't speak English!!?? hahahaha, great post Scott! You're a pretty funny guy : )
July 09, 2013 14:59
If you write a Top 10 list, don't spread it over ten pages. Or eleven (one for ads).
July 14, 2013 17:15
Some corrections for the rules at the end of the article. Also changed redirectType="Found" (HTTP 302) to redirectType="Permanent" (HTTP 301).

<system.webServer>
<rewrite>
<rules>
<rule name="CanonicalHostNameRule1" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" matchType="Pattern" pattern="^hanselman\.com$" ignoreCase="true" negate="false" />
</conditions>
<action type="Redirect" url="http://www.hanselman.com/{R:1}" redirectType="<b>Permanent</b>" />
</rule>
<rule name="CanonicalHostNameRule2" stopProcessing="true">
<match url="blog/default.aspx" />
<action type="Redirect" url="blog/" redirectType="<b>Permanent</b>" />
</rule>
</rules>
</rewrite>
<system.webServer>
August 04, 2013 10:35
It is perfect time to make some plans for the future and it's time to be happy. I've read this post and if I could I want to suggest you some interesting things or suggestions.
Maybe you could write next articles referring to this article.
I wish to read even more things about it!
October 12, 2013 23:35
I've just begun to have a new problem, related to this one: A worthpoint.net banner ad has implanted itself at the top of any window I go to. If I try to sign in to my bank, the worthpoint ad is right where the sign in box would be, so I am blocked from signing in to my bank on my ipad, unless I get the app for worthpoint. This to me is a hi-jacking of the web and how do I get rid of it? The "x" for cancel will not respond.

Comments are closed.

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.