Skip to content

Commit acde29b

Browse files
committed
Remove data-testids from Preferences by fixing web accessibility for font size input
1 parent 6933ac8 commit acde29b

File tree

4 files changed

+37
-29
lines changed

4 files changed

+37
-29
lines changed

client/modules/IDE/components/Preferences/Preferences.unit.test.jsx

Lines changed: 30 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -140,8 +140,7 @@ describe('<Preferences />', () => {
140140
});
141141

142142
// get ahold of the text field
143-
const input = screen.getByTestId('font-size-text-field');
144-
// const input = screen.getByRole("textbox", {name: /decrease font size/i});
143+
const input = screen.getByRole('textbox', { name: /font size/i });
145144

146145
// change input to 24
147146
act(() => {
@@ -150,7 +149,11 @@ describe('<Preferences />', () => {
150149

151150
// submit form
152151
act(() => {
153-
fireEvent.submit(screen.getByTestId('font-size-form'));
152+
fireEvent.submit(
153+
screen.getByRole('form', {
154+
name: /set font size/i
155+
})
156+
);
154157
});
155158

156159
// expect that setFontSize was called once with 24
@@ -165,7 +168,7 @@ describe('<Preferences />', () => {
165168
});
166169

167170
// get ahold of the text field
168-
const input = screen.getByTestId('font-size-text-field');
171+
const input = screen.getByRole('textbox', { name: /font size/i });
169172

170173
act(() => {
171174
fireEvent.change(input, { target: { value: '100' } });
@@ -174,7 +177,11 @@ describe('<Preferences />', () => {
174177
expect(input.value).toBe('100');
175178

176179
act(() => {
177-
fireEvent.submit(screen.getByTestId('font-size-form'));
180+
fireEvent.submit(
181+
screen.getByRole('form', {
182+
name: /set font size/i
183+
})
184+
);
178185
});
179186

180187
expect(props.setFontSize).toHaveBeenCalledTimes(1);
@@ -188,7 +195,7 @@ describe('<Preferences />', () => {
188195
});
189196

190197
// get ahold of the text field
191-
const input = screen.getByTestId('font-size-text-field');
198+
const input = screen.getByRole('textbox', { name: /font size/i });
192199

193200
act(() => {
194201
fireEvent.change(input, { target: { value: '0' } });
@@ -197,7 +204,11 @@ describe('<Preferences />', () => {
197204
expect(input.value).toBe('0');
198205

199206
act(() => {
200-
fireEvent.submit(screen.getByTestId('font-size-form'));
207+
fireEvent.submit(
208+
screen.getByRole('form', {
209+
name: /set font size/i
210+
})
211+
);
201212
});
202213

203214
expect(props.setFontSize).toHaveBeenCalledTimes(1);
@@ -213,7 +224,7 @@ describe('<Preferences />', () => {
213224
});
214225

215226
// get ahold of the text field
216-
const input = screen.getByTestId('font-size-text-field');
227+
const input = screen.getByRole('textbox', { name: /font size/i });
217228

218229
act(() => {
219230
fireEvent.change(input, { target: { value: 'hi' } });
@@ -224,7 +235,11 @@ describe('<Preferences />', () => {
224235

225236
// we hit submit
226237
act(() => {
227-
fireEvent.submit(screen.getByTestId('font-size-form'));
238+
fireEvent.submit(
239+
screen.getByRole('form', {
240+
name: /set font size/i
241+
})
242+
);
228243
});
229244

230245
// it still sets the font size but it's still 12
@@ -239,7 +254,7 @@ describe('<Preferences />', () => {
239254
});
240255

241256
// get ahold of the text field
242-
const input = screen.getByTestId('font-size-text-field');
257+
const input = screen.getByRole('textbox', { name: /font size/i });
243258

244259
act(() => {
245260
fireEvent.change(input, { target: { value: '-' } });
@@ -248,7 +263,11 @@ describe('<Preferences />', () => {
248263
expect(input.value).toBe('12');
249264

250265
act(() => {
251-
fireEvent.submit(screen.getByTestId('font-size-form'));
266+
fireEvent.submit(
267+
screen.getByRole('form', {
268+
name: /set font size/i
269+
})
270+
);
252271
});
253272

254273
expect(props.setFontSize).toHaveBeenCalledTimes(1);

client/modules/IDE/components/Preferences/index.jsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,13 +178,17 @@ class Preferences extends React.Component {
178178
</button>
179179
<form
180180
onSubmit={this.onFontInputSubmit}
181-
data-testid="font-size-form"
181+
aria-label={this.props.t('Preferences.SetFontSize')}
182182
>
183+
<label htmlFor="font-size-value" className="preference--hidden">
184+
{this.props.t('Preferences.FontSize')}
185+
</label>
183186
<input
184187
className="preference__value"
185188
aria-live="polite"
186189
aria-atomic="true"
187190
value={this.state.fontSize}
191+
id="font-size-value"
188192
onChange={this.onFontInputChange}
189193
type="text"
190194
ref={(element) => {

client/styles/components/_preferences.scss

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -248,20 +248,3 @@ input[type="number"]::-webkit-outer-spin-button {
248248
padding-right: #{14 / $base-font-size}rem;
249249
}
250250

251-
.preference__serve-secure {
252-
display: flex;
253-
align-items: center;
254-
}
255-
256-
.serve-secure__icon {
257-
@include icon();
258-
& svg {
259-
height: #{24 / $base-font-size}rem;
260-
width: #{24 / $base-font-size}rem;
261-
}
262-
}
263-
264-
.serve-secture__tooltip:after {
265-
text-align: left;
266-
font-size: #{12 / $base-font-size}rem;
267-
}

translations/locales/en-US/translations.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,8 @@
145145
"DecreaseFontARIA": "decrease font size",
146146
"IncreaseFont": "Increase",
147147
"IncreaseFontARIA": "increase font size",
148+
"FontSize": "Font Size",
149+
"SetFontSize": "set font size",
148150
"Autosave": "Autosave",
149151
"On": "On",
150152
"AutosaveOnARIA": "autosave on",

0 commit comments

Comments
 (0)