There are already a lot of Web APIs that define interfaces for different kinds of sensors (for example, the Device Orientation API and the Geolocation API). Unfortunately those APIs do not have a common interface and are all used differently – for example, by providing callback handlers in one case, or by registering event handlers in another. The goal of the Generic Sensor API is to define a set of common, generic interfaces for accessing any kind of sensor. Concrete sensor APIs that are based on the Generic Sensor API (such as the Ambient Light API) extend generic interfaces and add functionality as required.
Accessibility is an important point when developing web applications. There are already standards like ARIA, which provides an ontology of roles, states and properties to define accessible user interfaces on the web. It can also enrich HTML elements (on a markup level) with information that can be used by assistive technologies like screen readers.
13. Font Loading API
When you are using custom fonts on a webpage, downloading the font files can take time, depending on the bandwidth and the size of the font files. This can then lead to display problems, such as flickering content when the webpage starts rendering without the font face being loaded first.
The Bluetooth protocol is a standard that is often used in the field of IoT, for example to connect a smartphone or tablet to other devices like health trackers to read certain sensor values. For mobile web applications it is already possible to connect via Bluetooth by using PhoneGap and its plugins, but if you want to use Bluetooth inside a web application on a desktop computer or laptop then you will still need to install an extra browser plugin.
The goal of the Web Bluetooth API that is being worked on by the W3C Web Bluetooth Community Group is to provide a standardised API for accessing Bluetooth devices through the browser, without the need for any plugins.
As you know, web applications contain two viewports: the layout viewport, which represents the space where a page lays out its elements into, and the visual layout, which represents what is visible on the screen. However, working with those two layouts can be a confusing task: while some properties like innerWidth and innerHeight are relative to the visual viewport, other properties such as those for accessing event coordinates are relative to the layout viewport.
On top of that, the browser behaviour can also differ when you pinch-zoom into an application (an online demo that visualises those problems and the relationship between these two different layouts in general can be found here).
To overcome these problems and disparities, the goal of the Visual Viewport API is to add new properties that are all related to the visual viewport, as well as to introduce a property visualViewport on the window object.