getodk / getodk/web-forms

Audio question type - recording implementation

Open
#695 0 comments 0 reactions 0 assignees View on GitHub
In Collect In Enketo needs ui/ux design
Dominant language
TypeScript
Stars
38
Forks
22
PR merge metrics
No merged PRs in 30d

Description

### Description

Implement the `audio` question type ([specs](https://docs.getodk.org/form-question-types/#audio-widgets)) and investigate how to develop the key functionalities outlined below.

This feature should support built-in recording by default, providing users with controls to record, play, replace and upload audio files . Key functionalities include:

* **Recording Quality:** Support for the `audio-quality` appearance with `low`, `normal`, and `voice-only` presets to optimize file size and clarity.
* **Background Recording:** Implementation of the `background` appearance to allow continuous audio capture throughout the form-filling process.
* **Standard Interface:** A default widget featuring a record button that integrates seamlessly with the device's native or built-in audio capabilities.

---

### Checklist
- **Does it need UI/UX design?**
- [x] Yes. Describe the UI/UX requirements or attach a Figma link in the "Design" section.
- [ ] No
- **Does it need API design?**
- [x] Yes. Specify the endpoints, methods, or data structures needed.
- [ ] No
- **Does it need design around state flow?**
- [ ] Yes. Outline the state flow requirements.
- [ ] No
- **Does it need a test plan?**
- [x] Yes. Add the test plan as a comment in this task or attach the document.
- [ ] No
---

### User Stories

* As a data collector, I want to record audio responses directly within the form so that I don't have to switch to an external application.
* As a form designer, I want to set the audio quality to "voice-only" so that I can minimize data usage while maintaining high-quality speech recordings.
* As a researcher, I want to enable background recording so that the entire interview context is captured automatically while I navigate through questions.
* As a user, I want to listen to my recording before submitting the form to ensure the audio is clear and correctly captured.

---

### Design

- **Figma**: [Insert URL]
- **Design Docs**: [Insert URL]

---

### Related Issues

- https://github.com/getodk/web-forms/issues/703

Contributor guide

No contributing guide indexed for this repository

Research direction

No implementation files, entry points, or tests are identified. Start by resolving the missing UI/UX, API, state-flow, and test-plan details and reviewing related issue #703; done means audio responses support recording, playback, replacement, upload, quality presets, and background recording.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
frontend, web-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.