Deprecated since Gecko 57 (Firefox 57 / Thunderbird 57 / SeaMonkey 2.54)
This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

Obsolete since Gecko 71 (Firefox 71 / Thunderbird 71 / SeaMonkey 2.68)
This feature is obsolete. Although it may still work in some browsers, its use is discouraged since it could be removed at any time. Try to avoid using it.

XBL bindings have been removed from the Firefox codebase and the work was tracked in bug 1397874 and Are We XBL Still?.

Removal of the XBL implementation is being tracked in bug 1566221.

See also: XBL Removal Design Review Packet, Problems with XBL and the XBL and Web Components comparison.

XML Binding Language (XBL, sometimes also called Extensible Bindings Language) is a language for describing bindings that can be attached to elements in other documents. The element that the binding is attached to, called the bound element, acquires the new behavior specified by the binding.

Bindings can contain event handlers that are registered on the bound element, an implementation of new methods and properties that become accessible from the bound element, and anonymous content that is inserted underneath the bound element.

Most XUL widgets are at least partially implemented using XBL. You can build your own reusable widgets from existing XUL, HTML, SVG, and other primitives using XBL.


  • XBL 1.0 is specified in XBL 1.0 Reference. Unfortunately, the actual implementation in Mozilla is different from the specification, and there's no known document available describing the differences. Hopefully, the Reference will be updated to describe those differences.

XBL 1.0 is a Mozilla-specific technology, and not a W3C standard. At least two standards spawned from it have died: sXBL and XBL 2.0.

Warning: sXBL and XBL 2.0 have died.

  • W3C sXBL (currently a working draft, 2005) stands for SVG's XML Binding Language. It is supposed to include a subset of XBL 2.0 features needed for SVG. It's similar in spirit to Mozilla's XBL, but there are a few subtle (and not-so-subtle) differences. For example, names of the elements are different. Also sXBL lacks some features of XBL, such as bindings inheritance and defining methods/properties on bound elements.
  • XBL 2.0 (W3C Candidate Recommendation) was developed to address problems found in XBL 1.0 and to allow for implementations in a broader range of Web browsers. In 2009 Mozilla announced plans to implement XBL2 in future versions of Gecko.

Some differences between sXBL and XBL2 are listed in an article by Anne van Ke ( seesteren (November, 2005).

An overview of differences between Mozilla XBL and XBL2 is in a newsgroup posting by Jonas Sicking (April, 2007).

Still living "Shadow DOM" related specs