

Providing extensive customization is counter to this. When spatially navigating the general web (either through a pointerless device or as an assistive technology), users require a consistent and predictable experience.

These often have opposing requirements and goals. The second is allowing spatial navigation of the wider web the vast majority of which is not designed or tested for use with spatial navigation. The first is providing a framework for building first-class spatial UIs that are rich and deeply customizable e.g. In my opinion, the above proposal is attempting to solve two problems that are in tension with each other. The proposals above attempt to fix some of these issues and provide authors with an extensive set of APIs, allowing them to build rich spatial navigation UIs on the web.

Others, handle and consume KeyDown events, preventing spatial navigation from operating. For example, some pages programmatically move focus around the page using Element.focus(). This is problematic because the APIs that do affect spatial navigation are frequently used for other purposes. The APIs mentioned in the links above are not yet implemented. However, pages lack any direct APIs to interact with spatial navigation, relying on existing DOM events and functions. As such, it is entangled with page content. It operates by traversing the DOM and Layout trees directly and moving the page’s focus. The latter repo includes a JavaScript polyfill of the spatial-navigation spec.Ĭhromium’s Spatial Navigation functionality is implemented directly inside of Blink. An effort to standardize and extend this implementation is on-going in with additional details in. This has been implemented and maintained by various vendors including Nokia, LGE, Google, and others. This mode is not enabled by default, it requires passing –enable-spatial-navigation on the command line. Current StateĬhromium has an existing spatial navigation implementation (the only browser as far as I’m aware). Examples include TVs and set-top boxes but can also be used by users who’d prefer to use a keyboard or cannot use a pointer. This mode is typically used on devices that don’t support pointing devices like a mouse or touchscreen. In this mode, the keyboard arrow keys (or a “DPad”, remote, or joystick) cause an indicator on the screen to move from one interactible element to the next in the direction of the pressed key. Spatial Navigation is an input modality that allows mouseless navigation around a page using directional keys. Spatial Navigation on the Doc Background
