Audio question type - recording implementation
- 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