Web IDL
{{short description|Language used for web documents}}
{{Multiple issues|{{more citations needed|date=July 2013}}{{original research|date=May 2013}}
}}
Web IDL is an interface description language (IDL) format for describing APIs (application programming interfaces) that are intended to be implemented in web browsers. Its adoption was motivated by the desire to improve the interoperability of web programming interfaces by specifying how languages such as ECMAScript should bind these interfaces.{{cite news|url=https://www.infoq.com/news/2008/09/WebIDL/|title=Web IDL: W3C Language Bindings for DOM Specifications Gets a New Name|last=Han|first=Xu|work=InfoQ|date=7 September 2008}}
Description
Web IDL is an IDL variant with:{{cite web|title=Web IDL (Second Edition)|url=https://heycam.github.io/webidl/|publisher=World Wide Web Consortium|access-date=24 January 2016|date=18 January 2016}}
- A number of features that allow one to more easily describe the behavior of common script objects in a web context.
- A mapping of how interfaces described with Web IDL correspond to language constructs within an ECMAScript execution environment.
Web specifications had been specified using OMG IDL since 1998, first with the DOM Level 1 specification.{{cite web|url=https://mcc.id.au/2013/lca-webidl/|title="Web IDL: Defining Web APIs and Implementing JavaScript Bindings"|last=McCormack|first=Cameron|date=29 January 2013}} However, interfaces defined using OMG IDL were not able to specify behavior for JavaScript precisely, leading to issues with interoperability. WebIDL improved on this status quo by providing data types and binding specifications that make the intended behavior in JavaScript clearer.
Status of Web IDL specifications
[https://www.w3.org/TR/WebIDL/ The first edition of the Web IDL specification] became a Candidate Recommendation on 19 April 2012 and a W3C Recommendation on 15 December 2016.{{Cite web|url=https://www.w3.org/TR/WebIDL/|title = Web IDL Standard}} For many years the [https://heycam.github.io/webidl/ Editor's Draft of a potential second edition], was what most new web specifications referenced. On 5 October 2021, the Editor's Draft was moved to the [https://whatwg.org/ WHATWG] as the [https://webidl.spec.whatwg.org/ Web IDL Living Standard] per an [https://www.w3.org/2021/06/WHATWG-W3C-MOU_2021_update.html update to the agreement between the W3C and WHATWG].
Usage
- The W3C Wiki has a list of W3C Specifications that use Web IDL,{{cite web|url=http://www.w3.org/wiki/Web_IDL|title=Web IDL|publisher=W3C Wiki|access-date=28 March 2017}} and nearly all WHATWG specifications use it.{{cite web|title=Web Hypertext Application Technology Working Group Specifications|url=https://whatwg.org/specs/|publisher=WHATWG|access-date=24 January 2016}}
- The Chromium Project has a page about using WebIDL to specify interfaces in Blink.{{cite web|title=Web IDL in Blink|url=https://www.chromium.org/blink/webidl#TOC-Overview|work=Blink Project Documentation|access-date=9 June 2013}}
- Mozilla uses Web IDL in their software creation process, mapping implementations to Web IDL specs.{{cite web |title=Web IDL bindings |url=https://firefox-source-docs.mozilla.org/dom/webIdlBindings/index.html |access-date=3 August 2023 |work=Firefox Source Docs}}
- When WebKit is built, the IDL files are parsed, creates the code to bind interfaces to implementations.{{cite web|title=WebKit Web IDL|url=http://trac.webkit.org/wiki/WebKitIDL|work=trac.webkit.org|access-date=9 June 2013}}
- In the ES operating system, every system API is defined in Web IDL, and can be invoked from JavaScript directly.{{cite web|title=The ES operating system|url=http://www.esrille.com/en/labs.html|url-status=dead|archive-url=https://web.archive.org/web/20220328103549/https://www.esrille.com/en/labs.html|archive-date=28 Mar 2022}}
References
{{reflist}}
{{Reflist|group=W3C}}
External links
- [http://www.w3.org/wiki/Web_IDL#Dependent_Specifications List of standards that use Web IDL]
- [https://w3c.github.io/webidl2.js/checker/ Web IDL syntax checker]
{{Web interfaces}}