Below is the essay I submitted via Firefox’s feedback form earlier today.
“The page was reloaded, because the character encoding declaration of the HTML document was not found when prescanning the first 1024 bytes of the file. The encoding declaration needs to be moved to be within the first 1024 bytes of the file.”
This is absolutely ridiculous. No other browser I’ve tested on – latest Chrome, Opera, and Safari; IE 11, IE9, IE7 – actually re-request the page because of this. Maybe they re-process the response, maybe they just properly handle undetected encoding from the beginning, but none of them make a whole new request.
I’ve spent the best part of 2 hours this morning debugging a site’s password reset form in Firefox because a session variable seemed to be evaluating to false only in Firefox – which makes absolutely zero sense. In reality it was evaluating to true, being unset (so users can only see the page after submitting their email address), then evaluating to false when the second request was made.
The site has a character encoding declaration, but it’s below the title, keywords and description. I don’t know if this is considered “bad practice” these days, but it’s an issue I have never run into in all my years as a web developer nor in any other browser I have ever used.
I won’t be including the URL, as it relates to a development server and also requires you to enter the email address of an active user account to replicate the issue.
Firefox 31.0 + 32.0.3
Obviously, having the charset encoding declaration near the top make sense, but never have I come across any errors, validation issues, blog posts, articles, or tweets about not having it at the very top being a bad thing to do.
Notice, also, how the error message I quoted at the top of my essay uses the word “prescanning.” To me, this indicates some sort of processing before they begin actual rendering of the content. So why are they re-requesting it?
Anyway, I left my email with them so we’ll see how they respond.