Skip to content

Groups & Repeats #486

@srujner

Description

@srujner

📘 Groups & Repeats in ODK Web Forms

This page documents how Groups and Repeats work in ODK Web Forms, and provides technical notes, list of forms, known issues, and a changelog for these features.


💡 Key assumptions

New containers for groups and repeats

  • A top level container always has an outline weather its a group or repeat
  • Repeat instances always have the darker container regardless of whether they're at the top level or nested
  • Groups have a light container if they are at the top level
  • Repeat number is next to the overflow button for delete/removing repeat

Repeats not in a group

  • Dark section header (without outlining the entire section)

Flat structure (no indenting/nesting)

  • Flat design will make it easier to read as everything is left aligned.

Buttons

  • Repeat instance uses a primary button
  • Nested repeats uses secondary button to create a distinction

🔍 For more details check: #379


📦 Feature Support Matrix

Feature Supported Notes
Nested groups
Nested repeats
Groups inside repeats
Repeats inside groups
Dynamic repeat count
field-list appearance

🧪 List of Forms to use

Standard Repeats

  • Repeat Group Label.xlsx
  • Anotherexample.xlsx

Nested Repeats

  • nested-repeats.xml
  • Anotherexample.xlsx

🐞 Known Issues

ID Issue Description Status Link
#1 Example Bug Description for example bug Open #345

🔍 Check ODK GitHub issues for more reports: https://github.com/getodk/web-forms/issues


🎨 Design Changes and Decisions


🛠️ Changelog

📌 v5.51.1 – 2025-08-10

  • ✅ Fixed: field-list and repeat interaction bug
  • ✅ Improved screen reader support for nested groups
  • 🛠 Refactored repeat rendering logic

📌 v5.50.0 – 2025-07-15

  • ➕ Improved support for mobile repeat layouts
  • ⚠ Regression: Repeat entries not saved on validation error

📌 v5.48.2 – 2025-05-01

  • Initial implementation of dynamic repeat_count updates

📥 Resources


Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions