Notice: The WebPlatform project, supported by various stewards between 2012 and 2015, has been discontinued. This site is now available on github.



The Document Object Model (DOM) is an application programming interface (API) for markup documents, like HTML, SVG, MathML, and XML. The DOM provides a logically structured representation of a document, and a set of Objects and Methods for manipulating that structure.

Explore our DOM docs

DOM learning material

Tutorials and concept articles to teach you DOM manipulation from scratch.


See the table below.


See the table below.

Note: If you are completely new to web development, you may want to review Web development for beginners.


When a markup document is parsed by a browser, it converts the document in a tree structure called the document object model, or DOM. This model can then be used to access and manipulate existing elements in the document, and create new ones, an essential set of activities when creating dynamic page functionality.

  • First version: It was 1997 when browser vendors involved in the W3C decided to agree on a single standardised document object model, to make cross browser coding less of a nightmare.
  • Current stable version: DOM level 3 is the most stable version, the specification of which is split up into different parts, all of whom have made it to recommendation status. You can find a list of all DOM publications at DOM technical reports
  • Current and future work: DOM level 4 is the current nascent version of the DOM being worked on.

Contributing to DOM development

The DOM is being worked on by the Web Applications Working Group; visit their mailing lists for discussion, and contribution of ideas.

List of DOM-related Interfaces