Skip to content

Commit 99ef0b3

Browse files
authored
Merge pull request #194 from revisit-studies/figma-blog
figma screen recording draft
2 parents a0d53ab + 9ac8858 commit 99ef0b3

6 files changed

Lines changed: 240 additions & 0 deletions

File tree

Lines changed: 236 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,236 @@
1+
---
2+
layout: post
3+
title: "Remote Usability Testing of Figma Prototypes with reVISit"
4+
authors:
5+
- harrison
6+
---
7+
8+
Scheduling one-on-one usability sessions is time-consuming, expensive, and hard to scale. With reVISit's **screen recording** and **think-aloud audio** features, you can run instrumented prototype studies asynchronously — participants navigate your Figma prototype while their screen and voice are captured, and you can run multiple participants at once!
9+
10+
<!-- truncate -->
11+
12+
## Why Test Figma Prototypes with reVISit?
13+
14+
Usability testing can be difficult. You have to track people down, schedule a time for the session, and repeat for each user. Remote testing, e.g., via Zoom is possible, but still requires you to be online at the same time.
15+
16+
reVISit now offers an alternative through it's new screen recording and audio think-aloud features. Because Figma provides shareable embed URLs for interactive prototypes, you can drop one directly into a reVISit `website` component using iframes — with very little coding needed. Layering on `recordScreen: true` and `recordAudio: true` gives you:
17+
18+
- **Screen recordings** of every participant's navigation path through the prototype
19+
- **Synchronized think-aloud audio** so you can hear their reasoning alongside what they see
20+
- **Structured questionnaires** before and after the prototype task — in the same study, same dataset
21+
- **Participant Replay** to watch recordings back with audio aligned on a single timeline
22+
23+
The entire study is defined in a single JSON config, and all data lands in your reVISit storage automatically.
24+
25+
## Step 1: Enable Screen Recording and Think-Aloud Audio
26+
27+
Start by turning on both capture modes in the top-level `uiConfig` block:
28+
29+
```json
30+
"uiConfig": {
31+
"recordScreen": true,
32+
"recordAudio": true,
33+
"withProgressBar": true,
34+
"withSidebar": true,
35+
"contactEmail": "your@email.com"
36+
}
37+
```
38+
39+
Then import the companion library that handles participant permissions:
40+
41+
```json
42+
"importedLibraries": ["screen-recording"]
43+
```
44+
45+
The **`screen-recording`** library provides a `screenRecordingPermission` component that asks participants to share their browser tab — similar to screen-sharing in a video call. When `recordAudio: true` is also set, the permissions step requests microphone access at the same time. reVISit blocks progression if either permission is denied.
46+
47+
Insert the permission step near the start of your study sequence:
48+
49+
```json
50+
"sequence": {
51+
"order": "fixed",
52+
"components": [
53+
"introduction",
54+
"$screen-recording.co.screenRecordingPermission",
55+
"figmaTask",
56+
"postTaskQuestions"
57+
]
58+
}
59+
```
60+
61+
![The permissions step participants encounter before the study begins — the browser's native "Choose what to share" dialog with the reVISit study tab pre-selected, alongside the microphone permission prompt. Both are requested together on the same screen.](/img/blog_posts/figma-1.png)
62+
63+
## Step 2: Embed Your Figma Prototype
64+
65+
In Figma, open your prototype, click **Share → Open embed code** or **Publish**, and copy the URL from the `src` attribute of the generated `<iframe>` tag. It will look something like:
66+
67+
```
68+
https://embed.figma.com/proto/<FILE_ID>/<PROTOTYPE_NAME>?node-id=...&scaling=min-zoom&embed-host=share
69+
```
70+
71+
![The interface on Figma for publishing a prototype.](/img/blog_posts/figma-4.png)
72+
73+
Paste that URL into a `website` component in your reVISit config:
74+
75+
```json
76+
"figmaTask": {
77+
"type": "website",
78+
"recordAudio": true,
79+
"recordScreen": true,
80+
"path": "https://embed.figma.com/proto/<YOUR_FILE_ID>/<PROTOTYPE_NAME>?...",
81+
"instruction": "Please explore the prototype below. As you navigate, speak your thoughts aloud — tell us what you notice, what you expect, and anything that feels unclear or surprising.",
82+
"response": []
83+
}
84+
```
85+
86+
Setting `recordAudio` and `recordScreen` on the component itself is optional when they are already enabled globally in `uiConfig`, but it is good practice to be explicit — especially if you want different recording behavior on other components (e.g., a plain questionnaire where you turn audio off).
87+
88+
![The reVISit participant view during the prototype task — the Figma prototype is embedded in the main content area, fully interactive, while the right sidebar displays the think-aloud instructions in a scrollable panel. The progress bar is visible at the top of the page.](/img/blog_posts/figma-2.png)
89+
90+
## Step 3: Guide Participants with Sidebar Instructions
91+
92+
Without a moderator in the room, it can be easy for participants to forget to think aloud or to drift into their working process. It can be useful to include an on screen prompt to remind them to stay on task
93+
Add a `textOnly` response at `location: "sidebar"` to keep instructions visible throughout the entire task:
94+
95+
```json
96+
"response": [
97+
{
98+
"id": "think-aloud-instructions",
99+
"type": "textOnly",
100+
"location": "sidebar",
101+
"prompt": "### Think-Aloud Instructions\n\nYour screen and audio are being recorded. Please say out loud everything you are thinking as you move through the prototype.\n\n**As you explore, try to describe:**\n\n- What you notice on each screen\n- What you expect to happen when you tap or click something\n- What feels clear or confusing\n- Why you choose certain actions\n\nThere are no right or wrong actions — we are evaluating the design, not you."
102+
}
103+
]
104+
```
105+
106+
Sidebar content remains pinned while participants scroll or interact, so the instructions stay in view even as they move through multiple prototype screens.
107+
108+
## Step 4: Collect Structured Post-Task Feedback
109+
110+
Follow the prototype task with a `questionnaire` component. Setting `recordAudio: true` on it means participants can continue to narrate their thoughts while they fill out rating scales and open-ended questions — a useful signal for interpreting their written responses. Alternately, you might design a series of pages with one spoken question per page, which will automatically be segmented by reVISit's trial management architecture.
111+
112+
```json
113+
"postTaskQuestions": {
114+
"type": "questionnaire",
115+
"recordAudio": true,
116+
"response": [
117+
{
118+
"id": "satisfaction",
119+
"prompt": "Rate your satisfaction with the following aspects of the prototype.",
120+
"location": "aboveStimulus",
121+
"type": "matrix-radio",
122+
"answerOptions": "satisfaction5",
123+
"questionOptions": [
124+
"Overall Design",
125+
"Ease of Navigation",
126+
"Visual Clarity",
127+
"Completeness of Information"
128+
]
129+
},
130+
{
131+
"id": "open-feedback",
132+
"prompt": "What stood out most during your exploration — positive or negative?",
133+
"location": "aboveStimulus",
134+
"type": "longText",
135+
"placeholder": "Share your thoughts here..."
136+
}
137+
]
138+
}
139+
```
140+
141+
The Likert matrix response type (`matrix-radio`) with the built-in `satisfaction5` answer options gives you a clean, pre-labeled five-point scale without any extra configuration.
142+
143+
## Reviewing Your Results
144+
145+
Once participants complete the study, head to the reVISit analysis interface. The **[Participant Replay](https://revisit.dev/docs/analysis/participant-replay/)** view lets you watch each participant's screen recording with their think-aloud audio synchronized on a timeline — so you can see exactly where they hesitated, backtracked, or expressed confusion.
146+
147+
For deeper qualitative analysis, the **[Qualitative Coding](https://revisit.dev/docs/analysis/coding/)** interface displays auto-transcribed think-aloud text for each participant and task, lets you correct transcriptions, and supports creating and applying codebooks to surface recurring themes across your dataset.
148+
149+
![The Participant Replay interface showing a recording of a participant navigating the Figma prototype in the main pane, with the audio waveform timeline running along the bottom of the player. The qualitative coding panel is open on the right, displaying the auto-transcribed think-aloud text with analyst annotations applied.](/img/blog_posts/figma-3.png)
150+
151+
## Putting it All Together
152+
153+
Here is a complete, ready-to-use config. The only change you need to make is swapping in your Figma embed URL for the `path` value in `figmaTask`:
154+
155+
```json
156+
{
157+
"$schema": "https://raw.githubusercontent.com/revisit-studies/study/v2.3.0/src/parser/StudyConfigSchema.json",
158+
"studyMetadata": {
159+
"title": "Prototype Usability Study",
160+
"version": "pilot",
161+
"authors": ["Your Name"],
162+
"date": "2026-02-21",
163+
"description": "A think-aloud usability study with screen and audio recording.",
164+
"organizations": ["Your Institution"]
165+
},
166+
"uiConfig": {
167+
"contactEmail": "your@email.com",
168+
"withProgressBar": true,
169+
"withSidebar": true,
170+
"recordAudio": true,
171+
"recordScreen": true
172+
},
173+
"importedLibraries": ["screen-recording"],
174+
"components": {
175+
"introduction": {
176+
"type": "markdown",
177+
"path": "<PATH_TO_YOUR_INTRODUCTION.md>",
178+
"response": []
179+
},
180+
"figmaTask": {
181+
"type": "website",
182+
"recordAudio": true,
183+
"recordScreen": true,
184+
"path": "https://embed.figma.com/proto/<YOUR_FILE_ID>/<PROTOTYPE_NAME>?node-id=...&scaling=min-zoom&embed-host=share",
185+
"instruction": "Please explore the prototype below. As you navigate, speak your thoughts aloud — tell us what you notice, what you expect, and anything that feels unclear or surprising.",
186+
"response": [
187+
{
188+
"id": "think-aloud-instructions",
189+
"type": "textOnly",
190+
"location": "sidebar",
191+
"prompt": "### Think-Aloud Instructions\n\nYour screen and audio are being recorded. Please say out loud everything you are thinking as you move through the prototype.\n\n**As you explore, try to describe:**\n\n- What you notice on each screen\n- What you expect to happen when you tap or click something\n- What feels clear or confusing\n- Why you choose certain actions\n\nThere are no right or wrong actions — we are evaluating the design, not you."
192+
}
193+
]
194+
},
195+
"postTaskQuestions": {
196+
"type": "questionnaire",
197+
"recordAudio": true,
198+
"response": [
199+
{
200+
"id": "satisfaction",
201+
"prompt": "Rate your satisfaction with the following aspects of the prototype.",
202+
"location": "aboveStimulus",
203+
"type": "matrix-radio",
204+
"answerOptions": "satisfaction5",
205+
"questionOptions": [
206+
"Overall Design",
207+
"Ease of Navigation",
208+
"Visual Clarity",
209+
"Completeness of Information"
210+
]
211+
},
212+
{
213+
"id": "open-feedback",
214+
"prompt": "What stood out most during your exploration — positive or negative?",
215+
"location": "aboveStimulus",
216+
"type": "longText",
217+
"placeholder": "Share your thoughts here..."
218+
}
219+
]
220+
}
221+
},
222+
"sequence": {
223+
"order": "fixed",
224+
"components": [
225+
"introduction",
226+
"$screen-recording.co.screenRecordingPermission",
227+
"figmaTask",
228+
"postTaskQuestions"
229+
]
230+
}
231+
}
232+
```
233+
234+
## Next Steps
235+
236+
To learn more, check out the [Screen Recording setup guide](https://revisit.dev/docs/designing-studies/record-screen/) and the [Think-Aloud documentation](https://revisit.dev/docs/designing-studies/think-aloud/). If you have questions or want to share what you build, come find us in the [reVISit Slack](https://revisit.dev/contact/). We'd love to see what kinds of prototypes you put to the test.

blog/authors.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,6 @@
11
team:
22
name: The ReVISit Team
3+
harrison:
4+
name: Lane Harrison
5+
lex:
6+
name: Alexander Lex

static/img/blog_posts/figma-1.png

410 KB
Loading

static/img/blog_posts/figma-2.png

878 KB
Loading

static/img/blog_posts/figma-3.png

338 KB
Loading

static/img/blog_posts/figma-4.png

269 KB
Loading

0 commit comments

Comments
 (0)