# Device Lab test roadmap

> The behaviour topics and reruns the Device Lab plans to measure, with the platforms, the status of each item and the reason it is on the list.

import LabRoadmap from '@components/lab/LabRoadmap.astro';
import LabProvenance from '@components/lab/LabProvenance.astro';

Planned Device Lab tests have a question, target platforms, a reason to run, and an order. None has a published result yet. For completed measurements, see the [behaviour pages](/lab/behaviour/).

## Order and status

An item marked `scheduled` names its assigned run. The four statuses distinguish tests that can run, tests with missing prerequisites, and tests assigned to a run.

| Status | Meaning |
|---|---|
| `planned` | The test is designed and can run on hardware the Lab has |
| `needs-device` | The test needs a device the Lab does not have, such as an Android phone |
| `needs-origin` | The test needs a service worker scoped to the root of a site, which harness v1 does not register |
| `scheduled <run>` | The test is assigned to a named run |

## Planned items

<LabRoadmap locale="en" />

The root-scoped worker item is marked `needs-origin` because harness v1 has no root-scoped worker. Harness v1 registers its service worker with the scope `/lab/device-tests/` (see `registerLabWorker` in [lab.js](https://openpwa.net/lab/device-tests/lab.js)). The WebKit post on [Declarative Web Push](https://webkit.org/blog/16535/meet-declarative-web-push/) (webkit.org) says that a service worker scoped to the root of the site shares the push subscription of the window object, so this test needs a worker registered at the root.

<LabProvenance locale="en" />