Beginning of DOM

As the dynamic HTML (DHTML) with client-side and server-side scripting was developing, Internet Explorer 4 and Netscape Navigator 4 (back in 1997) started taking different approaches in how to communicate to the document (i.e. HTML) elements or tags. That started creating huge problems to web developers that now could not write a dynamic page that will be universally understood across browsing platforms.

To prevent such a development of Internet, the World Wide Web Consortium (W3C) began working on DOM (Document Object Model).

DOM levels

In the 1998, DOM level #1 became W3C recommendation and it consisted of two parts, the DOM Core and the DOM HTML. The former one provided a way to map the structure of an XML-based document, while the latter one added HTML specific objects and methods to the Core.

The DOM level #2 extended the DOM to support mouse and user-interface events, ranges, traversals (methods for iteration over a structured document), and a large support for Cascading Style Sheets (CSS). It also added the support for XML namespaces. Those extensions were achieved following these modules:

  • DOM Views - Describes interfaces to tracking of various views of a document;
  • DOM Events - Describes interfaces for events and their handling;
  • DOM Style - Describes interfaces for CSS-based elements styling;
  • DOM Traversal and Range - Describes interfaces to traverse and manipulate a document tree.

The DOM level #3 introduced methods to load and save documents in a uniform way and methods to validate a document. That was achieved by adding two modules, DOM Load and Save and DOM Validation. The DOM level 3 also added a full support for XML 1.0, includingXPath and XML Base.

Other DOMs

There are other languages that published their own DOM standards as well. Most of those languages are XML based with some of the most know being:


To learn more about document object model (DOM)  in JavaScript, refer to our JavaScript DOM tutorial, DOM extensions and DOM models 2 and 3.