ODK Web Forms

ODK Central provides a web-based interface to your forms for data edits, to preview form definitions, and to enable data collection from devices other than Android phones. You can learn about how to collect data using web forms in the section on managing Submissions.

ODK is migrating to ODK Web Forms, the modern default experience for new Forms starting in Central v2026.2.0. Forms created prior to that used Enketo.

This page describes how to opt into using ODK Web Forms for all web-based functions, outlines upcoming features and documents more complex question types.

Opting into ODK Web Forms in Central

ODK Web Forms is the default web forms experience for forms created in Central v2026.2.0 or later. Forms created on prior versions used Enketo by default.

To opt an existing form into ODK Web Forms, go to the Settings tab for that form. In the Web forms experience section, select the ODK Web Forms option, read the description, and confirm that you want to opt in.

You can change a form's setting between Enketo and Web Forms at any time. Any form links that users already have will continue to work and will reflect the setting on the server at the time that the form link is loaded. Existing submissions are not affected by switching between web forms options.

Upcoming features

We've extensively tested ODK Web Forms and consider it ready for production use for most projects. All form logic, major question types, media, translations, repeats, and Entities are supported.

For users who have been using web forms in Central prior to v2026.2.0, here is functionality in Enketo that's coming to Web Forms, in rough order of priority:

  • Satellite basemaps

  • big-image for labels

  • no-calendar appearance

  • Select from svg

  • Guidance hints

  • Launch form offline and save drafts

  • Progress bar

  • Audio recording in foreground and background

  • Picker, ticks appearances for range

  • Grid layout

Please let us know on the forum what is most important to you.

Question types

Most Web Forms functionality is very similar to Collect's. This section describes question types with more complex functionality or that differ from Collect.

Geospatial question types

Web Forms supports all of the geo questions supported by Collect with some user experience differences to account for the web context. Note that Web Forms users could be filling out forms from computers which generally do not provide as high accuracy locations as mobile devices. Unlike in Collect, using start-geopoint does not currently result in faster location capture.

When designing the geospatial question types for Web Forms, we considered not only the data collection experience but also the data editing experience. In particular, when editing geopoint questions, Web Forms always shows the placement map experience, even if another appearance was used to capture the point.

Geopoint without appearance

The default geopoint question allows the user to get the location without a map interface. When a user taps the Get location button, a dialog will appear, showing the accuracy of the currently-available location or no value if location permissions are not granted yet. If location permissions are not granted yet, the user will also be asked to grant location permissions by their browser.

Web Forms location permissions request

Warning

Different browsers manage location permissions differently. Some may not prompt for the permission and may require users to go to their settings to grant location access. In Safari on iOS, a denied location permission stays in effect for the open page even after it is changed in Settings. The user must reload the page for the new permission to take effect.

If a user denies location permissions to a form, that permission will apply for all forms on that server and a user may need to go to browser settings to grant the permission.

Once location permissions are granted to Web Forms, it will start reading location data from available sensors on the device. The current location accuracy will be displayed along with qualitative information about that accuracy to help guide the person filling out the form to get the highest accuracy point possible. Location will continue to update until the user taps the Save location button or the accuracy reaches the target accuracy defined by the form, whichever comes first. The target accuracy is the value in the "Location will be saved at N m" message.

Web forms location-finding dialog

Geopoint with maps appearance

The maps appearance allows users to capture their current location while viewing it on a map. After tapping Get location and granting permissions, the map automatically zooms to the user’s current location and saves the location. The marker turns green to indicate success and the bottom panel displays Point saved. The user can remove the saved point and try again if needed.

Web forms geopoint with maps appearance

Geopoint with placement-map appearance

The placement-map appearance is similar to maps, but also allows the user to manually move the marker. If location permissions are granted, the map zooms to the user’s current location. The marker is saved by tapping on the map. The marker can be dragged to adjust the position. The user can remove the marker and try again at any time before moving on.

For both maps and placement-map appearances, location capture stops when the user scrolls away from the question.

Web forms geopoint with placement-map appearance

Geoshape

A series of points that form a closed polygon. Points can be added by tapping the screen to place each point. Each coordinate is represented by small circles with outlines. These are connected by lines. The last point that was entered has a darker outline. Use the trash bin icon to delete the entire shape or the undo button to go back a step.

Web forms geoshape

Geotrace

A series of points. Identical to geoshape except that the first and last point may be different and at least 2 points are required.

Points can be added by tapping the screen to place each point. Each coordinate is represented by small circles with outlines. These are connected by lines. The last point that was entered has a darker outline.

Web forms geotrace

For scenarios requiring precise coordinate adjustments, an advanced panel can be used for manual data entry. Expanding this panel allows users to specify the latitude, longitude, altitude, and accuracy for points. If the user already has the geodata from an external source, they can paste or import the file to replace the existing trace or shape.

Web forms advanced panel for geoshape and geotrace

File uploads

Web forms geotrace

Web Forms supports uploading image, video, audio, and file attachments such as PDFs using the respective question types. For the image question type, users on a mobile device can also take a picture directly with their camera. Devices like laptops that use a desktop browser will not show the capture button, even if they have a built-in camera.

The value of an upload question can also be set by the form itself. Use a static default, a trigger, or once() so that the value is set exactly once. A plain calculation is not recommended because it can re-evaluate at any time and replace the file the user chose. If the value is a file attached to the form, only the file name is saved. The file itself is not uploaded. Central will mark the submission as missing an attachment, and the file cannot be downloaded from it. The file still shows when the submission is edited. This is the same in Collect and Web Forms.

Date

../_images/calendar-yyyy-mm-dd.png

The date question type without appearance allows the user to enter a date. The user can manually type a date in the text field or click in the field to select a date from a calendar. The date format is based on the form's language, or the browser's language if the form does not have a language set. To change the year, they can press on the current year at the top of the calendar. To change the month, they can use the navigation arrows or press on the current month at the top of the calendar. There are also buttons to clear the date or jump to today.

Selects with images

When you specify images for select options, Web Forms displays the options in containers to support visual processing and make selection easier.

Select with images in Web Forms

By default, choices with images are displayed in a grid. Each choice container is given the same width and height and the number of columns is determined by the screen width (this is the same as the columns appearance). Images are never distorted or scaled up but they may be scaled down. The maximum image height used is 300 pixels. We recommend using a consistent size for all images and trying your form on the devices you plan to use for data collection.

If you would like to display one choice with image per row, as is the default for Collect, you can use the columns-1 appearance.

Select one from map

Added in version Central: v2025.3

The select one from map question type allows users to select an option from choices displayed on a map. Each choice must include a geometry column in the choices sheet. The map uses OpenStreetMap as the base layer and supports zooming, panning, and tapping features to view details and make a selection.

Select one from map in Web Forms

When defining properties, keep the list concise and easy to read, as it appears in a compact popup on selection.

The following features are not supported yet:

  • The quick appearance

  • Offline tiles

  • Map layer customization (e.g., switching to Google Maps or Mapbox, terrain or satellite views)

  • Custom styling for points (marker-color and marker-symbol), lines (stroke and stroke-width) and shapes (stroke, stroke-width, and fill)

Annotate, draw, and signature

Web Forms supports the image widget with annotation, the draw widget, and the signature widget. All three open a drawing pad where the user can sketch with their mouse, finger, or stylus, and save the result as an image. The annotate and draw widgets provide pen color, zoom, undo, and clear controls; the signature widget uses a fixed black pen and provides only a clear control.

The annotate widget starts from an existing image. The user captures an image with their camera (on devices that support it), uploads one from their device, or uses a default image attached to the form, then draws on top of it.

When the form provides the image, Web Forms shows it and saves it as the answer right away, even before the user draws. If the base image changes later, any drawing is discarded. Collect behaves differently: it only saves an answer after the user opens the annotation screen, and it disables Take Picture and Choose Image so the provided default image is the one that gets annotated. Web Forms lets the user replace the default image at any time.

As with the upload questions, provide the image with a default, a trigger, or once(). A plain calculation is not recommended because it can re-evaluate at any time and discard the user's drawing.

Web Forms image widget with annotation

The draw widget opens with a blank drawing pad.

Web Forms draw widget

The signature widget opens with a blank pad sized for a handwritten signature.

Web Forms signature widget

Form styling

You can style text such as notes, labels, hints, options, and validation messages using Markdown format.

Styling in Web Forms

Pages

Added in version Web: Forms v1.1

To use pages in a form, set the style to pages in the settings sheet, as described in the XLSForm documentation.

By default, each question is shown on its own page. To show several questions together on one page, put them in a group with the field-list appearance.

Unlike Collect, a field-list group can also contain a repeat and it is shown on the same page, along with the other questions. You can also apply field-list to a repeat itself. In that case, each repeat instance becomes a page.

Use the Back and Next buttons to move between pages. Pages where no question is relevant are skipped.

Translations

Web Forms will display text using the default language specified in the form definition if there is one, reverting to the first supported language the user has configured in their browser. If no browser language matches one of the form languages, then the default language is English. The user may select their preferred language from the language selector dropdown shown at the top of the form, which is then saved and used for all future forms.

The language selector

When designing the form you can specify any languages you like, however the languages used for application elements such as buttons and status dialogs are limited to: English, español, français, and bahasa Indonesia. If you would like to contribute additional languages, follow the ODK Central translation guide and if you have questions, post in the the translation category on the ODK Forum.

Did this page help you?

Selecting an option will open a 1-question survey

👍 Yes 👎 No