-2

Which syntax and features should I use if I wanted to write a webpage that could be correctly parsed by any device realistically still in use?

By currently in use I mean also devices whose usage is not statistically meaningful to be included on browser usage statistics, but still reasonable enough to be used in the real world without being too much of a stretch: e.g. A screen reader, a Point-Of-Sale/Kiosk Device, an Internet appliance like a smart TV or a console.

I've recently been assigned to develop an HTML landing page requiring support for - hear me out - the ancient Microsoft Internet Explorer 6. Yes, you read that right.

Long story short, it was in the requirements for a public administration project that was in a legal limbo for a long time, and reworking these requirements would be more problematic than developing it and be done with it. At least according to my boss. Besides, it shouldn't be that much different than writing a current-day HTML newsletter.

But it got me thinking - what's the oldest browser (as in, the one with the oldest HTML standard support available) that I could realistically find in the wild?

I'm not talking about relevance or caniuse-level-of-support numbers, just something that for some more-or-less realistic reasons (excluding "here's a Windows 3.1 VM getting to the internet" retro challenges) people would still be using to get online. Also some security requirements (mostly updated SSL/TLS) cut off quite a bit of older devices, mostly games consoles like the Dreamcast, PS2 w/Network Access Disk and the PSP, or the original Nintendo DS, so those are also excluded.

Other than the aforementioned IE6.0, I can think of Opera Mini browser (which version?) for some legacy mobile phones, or maybe some kind of internet appliance still using the Netfront runtime (IIRC The Playstation 3 still uses a pre-webkit version of it).

Any suggestion?

Mark Rotteveel
  • 100,966
  • 191
  • 140
  • 197
  • 3
    Hi, this question isn't really appropriate for Stack Overflow as it is not a programming problem. Maybe try another Stack Exchange or possibly somewhere like Quora. However the answer to your question is I had a visit from someone who was using Netscape V4, so you can experience VERY old browsers in the wild. – GrahamTheDev Apr 18 '20 at 09:26
  • 2
    I definitely posited the question on wrong terms for stack overflow, it's less about browsers per se and more about (x)html standards. Unfortunately english is not my first language, and some nuances got lost in the process while writing my question. It's probably more accessibility-related, as I wouldn't be surprised if some people are stuck on the HTML parser of a very specific release of JAWS or similar assistive technology which got some needed features deprecated on later releases. – memory noise Apr 18 '20 at 09:46
  • I have retracted my close vote as if you edit the question to reflect what you said then that would be fine here. I will drop an answer for you. – GrahamTheDev Apr 18 '20 at 10:26
  • One of the difficulties here, is that at very low levels of usage the data becomes unreliable. You can't go, say, on user agent strings, because the likelihood grows that the real client is some kind of old bot that's just spoofing the user agent string that was common when it was written. Or it could be some kind of research where an old browser is being used "just to see", without the visitor having an expectation that the page be usable. You'd have to find an individual who was actually using an old browser for day-to-day use. You're unlikely to find them on SO. – Alohci Apr 18 '20 at 12:51
  • 2
    @GrahamRitchie I've updated my question, I hope it's clear now. Regarding my work-specific example, I'm going to do some kind of server side checking and accept the risk of false positives, as long as someone whose actual browser is IE6 is going to get some readable content, as we're not looking for features parity with modern browsers. – memory noise Apr 18 '20 at 18:14
  • I edited the title in an attempt to make this post applicable to Stack Overflow. – Super Jade Apr 19 '20 at 22:37
  • Use semantically correct HTML5; it's too big a job to support any browser or device throughout time so you have to make a choice there, unless you can detect browser and provide a separate site for the very oldest ones on up. – Nathaniel Flick Apr 20 '20 at 23:17

2 Answers2

1

preword - apologies this became a bit of a rant, I will try and tidy it up later and focus it more. I also understand you may have to listen to your boss so this has become me ranting on your behalf to your boss. I hope you can use some of it to construct a strong argument with your boss to get the spec changed. It also doesn't answer the question as it is titled. Probably worth a few down votes but I enjoyed having a rant!

Given the comment the OP asked this answer is applicable to that.

What are the oldest browser standards I need to support for accessibility?

The WebAIM annual survey is a great place to get this information.

Under the section 'Browsers' we can see that 2.1% of respondents still use IE 6,7 or 8.

Unfortunately they do not indicate what split of those who use IE6 but I would imagine it would be less than 0.1% overall as very few sites still operate on IE6 correctly.

I personally develop to IE9 standards, so use ES5 for JavaScript (or compile to ES5), HTML 5.0 features and CSS3 non-experimental features.

The reason for this is that those who do use IE8 and below tend to be screen reader users due to compatibility with the software they own. They also tend to use a very specific set of websites due to the fact that most websites just will not work for them.

Many people would argue that you must include everyone, and in an ideal world you should. However you also have to consider that your goal in accessibility is to provide the best experience possible for the widest number of people. This is not possible using IE8 and below as you lose a lot of the HTML5 standards that are useful for accessibility (particular form related attributes, navigating by regions such as <main>, <nav> etc.).

So what about the people stuck on IE6-8 then?

As stated they tend to be screen reader users. The beauty of this is that as long as you develop valid HTML, user correct WAI-ARIA attributes etc. (basically go for AAA WCAG 2.1 rating or as close as possible, at least AA rating) then in IE6-8 the site will still function reasonably well and be usable, even if not perfect.

CSS is where your main struggle will be, making a site work in IE6 is just horrible if you still want to follow best practices (try styling a button for example to make the font size large enough and colour contrast AAA rated). Also how do you then make it responsive for mobile users without hundreds of hacks?

So what if you have to support older browsers.

You can provide a separate version of the site (shock, horror, gasp).

Use user agent sniffing to redirect people to a separate, stripped back, text only with minimal styling version of the site. Be sure to include a link to the main site and indicate that this is a version of the site designed for older browsers.

This requires careful planning as you have to ensure that the same information is maintained on both sites and that features introduced are replicated across both sites.

This is why nobody does this and isn't something I would recommend at all. The amount of things to consider, the limitations on features you can introduce and the chance of updating one version and not the other (even with a Content Management System) is very high. Making just one of those mistakes is likely to cause you more problems than not implementing this at all.

Conclusion

HTML5 introduces many great features for accessibility.

Regions for navigation are one of the biggest wins.

By designing to older standards you will likely end up with a site that is less accessible.

For example, a lot of WAI-ARIA attributes don't work in modern browsers, never mind in older browsers. Trying to fall back to using WAI-ARIA attributes is not going to work.

What about an accessible and easy to use layout? IE6 was the days of tables for layouts because CSS was so limited with positioning. (want a sticky navigation bar? Good luck implementing that!)

To provide 'best effort' I would use a HTML5 shim to at least fix the layout for things like IE7 and IE8, IE6 just isn't feasible.

Another argument is security. How on earth are you meant to write secure JavaScript that is IE6 compatible. Heck try finding a single piece of information alive on the internet today on 'how do i fix this problem in IE6'. Perhaps your solution here is to just not use JavaScript at all. (and yes someone will argue progressive enhancement allows you to use JavaScript, but then you have JavaScript errors which would then mean you fail WCAG under 'Robust').

Oh and did you know that you can't even use <style>*{position:relative}</style><table><input></table> as that will crash the browser?

As a final thought on this rant part, Windows 98 will run IE9 and NVDA. So we cannot make the argument that people may not have the financial resources to upgrade as NVDA is free. We could argue they do not have the technical knowledge on how to upgrade, at which point all I could say is write an article on the site on how to upgrade and redirect people there maybe? It gets a bit silly at that point as to where you draw the line.

How to win the argument with your boss / help them get the spec changed

Your boss is in a bad position but probably doesn't have the 'firepower' they need to persuade the spec to be changed easily.

Here is a simple way for them to win the argument: WCAG 2.1 AA is the minimum legal standard that we can build this site to without risking getting sued.

This is impossible while maintaining compatibility with IE6 and without compromising on accessibility features.

The cost of getting accessibility wrong, coupled with the additional development cost associated with trying to develop to such an old standard makes this infeasible.

Couple that with the likelihood of developing a application with massive security flaws that could make the site vulnerable I would highly recommend we change the minimum requirements to IE8.

tl;dr

The oldest browser you realistically need to worry about is Internet Explorer 9. Even then you are being generous with your compatibility requirements. Do not try and develop a site that works in every browser ever encountered since 2001 (yes IE6 was 2001), you will break things for more people trying to accommodate people who do not want to upgrade (Windows 98 will run IE9 and NVDA).

Do not attempt to support IE8 and below as you will actually end up making decisions that will negatively impact accessibility.

If you can create a HTML5 valid and CSS3 valid website that is WCAG 2.1 AA standards compliant then you are already more accessible than 99% of websites in the world.

Community
  • 1
  • 1
GrahamTheDev
  • 22,724
  • 2
  • 32
  • 64
  • 2
    Note that the OP has not been asked to create a web site with IE6 support, just a landing page. It should be entirely possible to create such a page that is reasonably accessible. – Alohci Apr 18 '20 at 12:30
  • yes very true, however I think 70% of my "rant" applies, making it responsive, using HTML5 regions, form accessibility etc. would still be requirements. But you are correct I missed that it was a landing page and that does make things easier. – GrahamTheDev Apr 18 '20 at 12:34
  • Unfortunately there's no way the specs are negotiable - as I explained on another answer this is for a recently approved, 10-years-stuck-in-lawsuits old agreement between the EU and north-african trading partners. And while the requirements indicate IE6, the lowest kind denominator is probably even lower, as we're talking about emerging markets on sub-saharan countries (hence the scope of my original question). – memory noise Apr 18 '20 at 19:18
  • https://gs.statcounter.com/browser-market-share/all/africa that might be slightly skewed. Looking at the data IE is less than 1% (and that is IE 11-6) and IE Mobile is 0.12%. Africa is not as far behind as it used to be and nearly everyone uses mobiles to access the internet. With that being said I understand the position, there are bits of useful information in my rant and I would still encourage you to use HTML5 and find a way to meet the IE6 requirement (browser sniffing as suggested?) if you care about accessibility. Odds are if someone is on IE6 they aren't using a screen reader. – GrahamTheDev Apr 19 '20 at 06:32
1

You're not asking the right question.

Users of what I build may be different than the users of what you build. To one audience, it may not matter if the site only loads on current browsers. To another audience, it may be the only thing that matters.

Additionally, some sites outright require newer browser features to function... no web-based fallbacks are available. Also, there are current browsers that don't support much of anything (i.e. Safari, Lynx, etc.) so it's not necessarily a matter of age... but capability.

The question you should be asking is, how do you make the decision of what to support and what not to support. Short of pointing you at your analytics and logs, this isn't a technical question, but a business question.

Brad
  • 159,648
  • 54
  • 349
  • 530
  • A bit of a context: it's the website explaining the regulations for some commercial agreements between sounthern EU states and north African countries. Our audience currently ranges from current gen iPhones using broadband connection to several-years ago internet devices of any kind being used by maroccoan traders near the desert on less-than-ideal connection quality. Our contract draws the line at Internet Explorer 6, but I'd rather write something that it's actually usable by all relevant parties. – memory noise Apr 18 '20 at 18:50
  • @memorynoise Basic HTML is fine. The bigger problem you're going to have is getting HTTPS working. A lot of older devices don't support SNI, nor current TLS and ciphers. – Brad Apr 19 '20 at 13:30