DaveC426913 said:
Here in the 21st century, interactive web design is required.
No as much as people use it. Especially when it is done with Javascript (A lot can be done with CSS).
DaveC426913 said:
All browsers support Javascript.
Lynx doesn't.
The only thing you can assume is that all browsers support HTML.
DaveC426913 said:
Part of your job is to test across common browsers.
When you understand the concept of progressive enhancement, testing with all browsers becomes almost irrelevant.
A document written in HTML should be accessible in the same fashion to anyone who requests it, i.e. all users will get the exact same information just by reading the HTML. Most governments tend to go in that direction by applying
accessibility policies, especially in the public sector.
This means that if you hide some information into an image, a script or CSS, your document is badly designed.
If, for aesthetic or practical reasons you wish to do so, you MUST have an HTML fallback to present the same information.
The misleading information that transpire from this thread is that somehow Javascript is the most important thing to learn if you want to make a web page. IMHO it is dead last on the list. Not saying it is unnecessary, just don't start with that.
Here what is my list of what one should master before attempting making a web page:
1. HTML5
If you master the
HTML5 semantic, 75% of your work is done for writing a web page. Using the correct element (as opposed to using 'div' everywhere) will tell any user agent about the content of your document. As I said earlier, 'form' is the only interactive element of HTML and such, should be the base of any interactive feature of your web page (even if it is wrap inside a 'noscript' element).
2. Structured data
Structured data, especially
Schema.org because it is the best effort from the community to standardize it, will complete HTML5 to indicate more precisely to search engines what is the content of your web page. What good does it do to offer a web page if nobody finds it?
I prefer the
RDFa lite notation (because it is a natural extension of HTML), but I know JSON-LD is popular.
3. WAI-ARIA
If you've written your document with the correct HTML5 semantic, there won't be a lot to do here. Still, users with disabilities often need extra information to fully identify the content of the document.
WAI-ARIA is an extension of HTML5 that offers this possibility.
4. CSS
CSS is for styling your document. It shouldn't bring any new information to the document (Like some do by putting critical information into the 'content' attribute of a pseudo-element like ':before' or ':after'). But as the
CSS specifications evolve, you can do a lot of interactive action with CSS. And if you can do it with CSS, it should be the preferred way over scripting.
5. Javascript
Finally, there is scripting. When everything else's failed you or didn't satisfied your need (there are less and less of those possibilities as the specifications evolve), you rely on scripting, most probably Javascript. Just like CSS, it shouldn't bring new information to document.
By extension, using the
JQuery library is often a plus for writing Javascript.
What I like to do is use Javascript to replace the 'noscript' elements with other elements containing the same information. This way, users with Javascript gets the 'upgraded' version and the other still gets the info (without the need to even bothering checking which browser sees what). The 'noscript' elements might contain unstyled data, but at least the information is accessible and user agents that access this content usually don't care about styling.
The only exception would be if you wrote an app in Javascript (or an other language) that is meant to be used as is on the client's computer (a game, for example).
Conclusion
The real test to determine if a web document is nicely designed is by reading the
sent HTML document like you read a book. If it doesn't make sense to you, it's badly designed:
- If you can't 'see' an image because there is not a descriptive 'alt' attribute, it's bad;
- If you can't 'see' a menu because it is not wrap into a 'nav' element, it's bad;
- If you see a 'div' without a 'role' attribute, it's bad;
- If you don't see any 'typeof' and 'property' attributes in your document (i.e. structured data), it's most likely bad;
- If you have Javascript that will alter the document with new information (or no reference to it with a link or a form in a scriptless format), it's really really bad.