XBL (XML Binding Language) is an XML-based markup language for altering the behavior of XUL widgets. It was devised at Netscape in the late 1990s as an extension of XUL.[1] [2]
The primary use of XBL was in the Firefox web browser, but Mozilla deprecated it in 2017 and completely removed it from Firefox in 2019.[3] [4] However, the UXP fork of Firefox intends to continue supporting XBL indefinitely.[5]
Mozilla attempted to standardize XBL 2.0 via W3C in 2007,[6] but due to lack of interest from other web browser vendors, abandoned it in 2012.[7]
The Shadow DOM specification acknowledges XBL as a strong influence.[8]
XUL defines the user interface layout of an application. CSS rules can be used to change the appearance of various XUL elements. But XBL is needed to alter the behavior of a XUL widget, such as a scroll bar.
An XBL file contains bindings, each of which describes the behavior of a XUL widget. The root element of an XBL file is the <nowiki><bindings></nowiki>
element, which contains one or more <nowiki><binding></nowiki>
elements. Each <nowiki><binding></nowiki>
element declares one binding, which can be attached to any XUL element. It may also possess an <nowiki>id</nowiki>
attribute. A binding is assigned to an element by setting the CSS property <nowiki>-moz-binding</nowiki>
to the URL of the binding's file. For example: