Skip to content

Commit 7d0303f

Browse files
committed
fix: input-based components do not have required attribute anymore
1 parent 7808873 commit 7d0303f

12 files changed

+22
-9
lines changed

packages/main/src/ComboBox.hbs

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
placeholder="{{placeholder}}"
1010
?disabled={{disabled}}
1111
?readonly={{readonly}}
12-
?required={{required}}
1312
value-state="{{valueState}}"
1413
@input="{{_input}}"
1514
@change="{{_inputChange}}"
@@ -23,6 +22,7 @@
2322
aria-autocomplete="both"
2423
aria-describedby="{{valueStateTextId}}"
2524
aria-label="{{ariaLabelText}}"
25+
aria-required="{{required}}"
2626
/>
2727

2828
{{#if icon}}

packages/main/src/DatePicker.hbs

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
type="{{type}}"
1313
value="{{value}}"
1414
?disabled="{{disabled}}"
15+
?required="{{required}}"
1516
?readonly="{{readonly}}"
1617
value-state="{{valueState}}"
1718
@ui5-change="{{_handleInputChange}}"

packages/main/src/DatePicker.js

-1
Original file line numberDiff line numberDiff line change
@@ -823,7 +823,6 @@ class DatePicker extends UI5Element {
823823
"ariaOwns": `${this._id}-responsive-popover`,
824824
"ariaExpanded": this.isOpen(),
825825
"ariaDescription": this.dateAriaDescription,
826-
"ariaRequired": this.required,
827826
"ariaLabel": getEffectiveAriaLabelText(this),
828827
};
829828
}

packages/main/src/Input.hbs

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
?inner-input-with-icon="{{icon.length}}"
1414
?disabled="{{disabled}}"
1515
?readonly="{{_readonly}}"
16-
?required="{{required}}"
1716
.value="{{value}}"
1817
placeholder="{{placeholder}}"
1918
maxlength="{{maxlength}}"
@@ -25,6 +24,7 @@
2524
aria-autocomplete="{{accInfo.input.ariaAutoComplete}}"
2625
aria-expanded="{{accInfo.input.ariaExpanded}}"
2726
aria-label="{{accInfo.input.ariaLabel}}"
27+
aria-required="{{required}}"
2828
@input="{{_handleInput}}"
2929
@change="{{_handleChange}}"
3030
@keydown="{{_onkeydown}}"

packages/main/src/Input.js

-1
Original file line numberDiff line numberDiff line change
@@ -1067,7 +1067,6 @@ class Input extends UI5Element {
10671067
"ariaExpanded": this._inputAccInfo && this._inputAccInfo.ariaExpanded,
10681068
"ariaDescription": this._inputAccInfo && this._inputAccInfo.ariaDescription,
10691069
"ariaLabel": (this._inputAccInfo && this._inputAccInfo.ariaLabel) || getEffectiveAriaLabelText(this),
1070-
"ariaRequired": (this._inputAccInfo && this._inputAccInfo.ariaRequired) || this.required,
10711070
},
10721071
};
10731072
}

packages/main/src/MultiComboBox.hbs

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@
3838
placeholder="{{placeholder}}"
3939
?disabled={{disabled}}
4040
?readonly={{readonly}}
41-
?required={{required}}
4241
value-state="{{valueState}}"
4342
@input="{{_inputLiveChange}}"
4443
@change={{_inputChange}}
@@ -53,6 +52,7 @@
5352
aria-autocomplete="both"
5453
aria-labelledby="{{_id}}-hiddenText-nMore"
5554
aria-describedby="{{valueStateTextId}}"
55+
aria-required="{{required}}"
5656
/>
5757

5858
{{#if icon}}

packages/main/src/MultiComboBoxPopover.hbs

-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
.value="{{value}}"
3131
inner-input
3232
placeholder="{{placeholder}}"
33-
?required={{required}}
3433
value-state="{{valueState}}"
3534
@input="{{_inputLiveChange}}"
3635
@change={{_inputChange}}

packages/main/src/TextArea.hbs

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@
2121
placeholder="{{placeholder}}"
2222
?disabled="{{disabled}}"
2323
?readonly="{{readonly}}"
24-
?required="{{required}}"
2524
aria-label="{{ariaLabelText}}"
2625
aria-describedby="{{ariaDescribedBy}}"
26+
aria-required="{{required}}"
2727
maxlength="{{_exceededTextProps.calcedMaxLength}}"
2828
.value="{{value}}"
2929
@input="{{_oninput}}"

packages/main/test/pages/DatePicker_test_page.html

+1
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
<ui5-date-picker id="dp8" value="Jan 6, 2015"></ui5-date-picker>
3737
<ui5-date-picker id="dp9" value="today"></ui5-date-picker>
3838
<ui5-date-picker id="dp10" disabled></ui5-date-picker>
39+
<ui5-date-picker id='dp-required' required></ui5-date-picker>
3940
<ui5-date-picker id="dp11"></ui5-date-picker>
4041
<ui5-date-picker id="dp13"></ui5-date-picker>
4142
<ui5-date-picker id="dp16" format-pattern="long"></ui5-date-picker>

packages/main/test/specs/DatePicker.spec.js

+12
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,18 @@ describe("Date Picker Tests", () => {
8686
assert.ok(!datepicker.hasIcon(), "icon is not displayed");
8787
});
8888

89+
it("required", () => {
90+
datepicker.id = "#dp-required";
91+
92+
assert.ok(datepicker.input.getProperty("required"), "input has required set");
93+
assert.strictEqual(datepicker.innerInput.getAttribute("aria-required"), "true", "Aria-required attribute is set correctly.");
94+
95+
datepicker.root.removeAttribute("required");
96+
97+
assert.notOk(datepicker.input.getProperty("required"), "required property is not set");
98+
assert.strictEqual(datepicker.innerInput.getAttribute("aria-required"), "false", "Aria-required attribute is set correctly.");
99+
});
100+
89101
it("placeholder", () => {
90102
datepicker.root.setAttribute("placeholder", "test placeholder");
91103

packages/main/test/specs/Input.spec.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ describe("Attributes propagation", () => {
2323
});
2424

2525
it("Required attribute is propagated properly", () => {
26-
assert.ok(browser.$("#input-required").shadow$(".ui5-input-inner").getAttribute("required"), "Required property was propagated");
26+
assert.strictEqual(browser.$("#input-required").shadow$(".ui5-input-inner").getAttribute("aria-required"), "true", "Aria-required attribute is set correctly");
27+
assert.strictEqual(browser.$("#input-number").shadow$(".ui5-input-inner").getAttribute("aria-required"), "false", "Aria-required attribute is set correctly");
2728
});
2829

2930
it("Type attribute is propagated properly", () => {

packages/main/test/specs/TextArea.spec.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@ describe("Attributes propagation", () => {
2323
});
2424

2525
it("Required attribute is propagated properly", () => {
26-
assert.ok(browser.$("#required-textarea").shadow$("textarea").getAttribute("required"), "Required property was propagated");
26+
assert.strictEqual(browser.$("#required-textarea").shadow$("textarea").getAttribute("aria-required"), "true", "Aria-required attribute is set correctly");
27+
assert.strictEqual(browser.$("#basic-textarea").shadow$("textarea").getAttribute("aria-required"), "false", "Aria-required attribute is set correctly");
2728
});
2829

2930
it("Value attribute is propagated properly", () => {

0 commit comments

Comments
 (0)