When writing technical documentation about Web technologies, one thing you'll find yourself doing regularly is reading specifications. There are hundreds of them describing technologies for the Web, written by a great many different people and organizations. Being able to make sense of them is important, and this article will attempt to help you do just that. Be aware that there are many sites that create help documents that interpret the standards (correctly or incorrectly), but there should be a single canonical specification that should be referred to when writing documentation.
This article will help you find and understand the specifications that describe Web technologies, so that you can write better documentation.
The primary organization responsible for the World Wide Web standards is the World Wide Web Consortium or W3C for short. The list of standards and drafts through the W3C can be found on the w3.org website. This is a useful starting place for researching the accepted specifications for various web technologies. Take into account when accessing the standards that they can be a work in progress and have changing details according to their level of maturation. These maturity levels for the W3C are officially defined as Working Draft, Candidate Recommendation, Proposed Recommendation, and W3C Recommendation. The more solid a specification, the further down the former list it will be. As the specifications develop, browsers will typically have more solid support for the feature-sets. However, specific browsers do not always adhere to the specifications as they are laid out, and can have different levels of support.
Another organization, called WHATWG, produces specifications for certain advanced technologies. As a rule, when WHATWG and W3C both publish a spec for the same technology, MDN treats the WHATWG spec as canonical.
<<how do you know when a spec is "done enough" to start writing about? are there other spec groups to add?>>
Making sense of WebIDL
<<need a simple guide here>>
Just a few notes to integrate into the content of this section as it's written.