@ui5/webcomponents 0.31.18 → 0.31.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/CHANGELOG.md +113 -0
  2. package/dist/Card.js +44 -19
  3. package/dist/Dialog.js +7 -7
  4. package/dist/Icon.js +11 -1
  5. package/dist/Input.js +9 -5
  6. package/dist/List.js +93 -20
  7. package/dist/Popover.js +1 -1
  8. package/dist/Popup.js +5 -5
  9. package/dist/api.json +1 -1
  10. package/dist/features/InputSuggestions.js +1 -3
  11. package/dist/generated/assets/themes/sap_belize/parameters-bundle.css.json +1 -1
  12. package/dist/generated/assets/themes/sap_belize_hcb/parameters-bundle.css.json +1 -1
  13. package/dist/generated/assets/themes/sap_belize_hcw/parameters-bundle.css.json +1 -1
  14. package/dist/generated/assets/themes/sap_fiori_3/parameters-bundle.css.json +1 -1
  15. package/dist/generated/assets/themes/sap_fiori_3_dark/parameters-bundle.css.json +1 -1
  16. package/dist/generated/assets/themes/sap_fiori_3_hcb/parameters-bundle.css.json +1 -1
  17. package/dist/generated/assets/themes/sap_fiori_3_hcw/parameters-bundle.css.json +1 -1
  18. package/dist/generated/i18n/i18n-defaults.js +2 -2
  19. package/dist/generated/templates/BusyIndicatorTemplate.lit.js +1 -1
  20. package/dist/generated/templates/CardTemplate.lit.js +1 -1
  21. package/dist/generated/templates/ListTemplate.lit.js +2 -2
  22. package/dist/generated/templates/TableTemplate.lit.js +1 -1
  23. package/dist/generated/themes/Badge.css.js +1 -1
  24. package/dist/generated/themes/Button.css.js +1 -1
  25. package/dist/generated/themes/Card.css.js +1 -1
  26. package/dist/generated/themes/CheckBox.css.js +1 -1
  27. package/dist/generated/themes/ComboBox.css.js +1 -1
  28. package/dist/generated/themes/DatePicker.css.js +1 -1
  29. package/dist/generated/themes/GroupHeaderListItem.css.js +1 -1
  30. package/dist/generated/themes/Input.css.js +1 -1
  31. package/dist/generated/themes/InvisibleTextStyles.css.js +1 -1
  32. package/dist/generated/themes/Label.css.js +1 -1
  33. package/dist/generated/themes/Link.css.js +1 -1
  34. package/dist/generated/themes/List.css.js +1 -1
  35. package/dist/generated/themes/ListItem.css.js +1 -1
  36. package/dist/generated/themes/MessageStrip.css.js +1 -1
  37. package/dist/generated/themes/MultiComboBox.css.js +1 -1
  38. package/dist/generated/themes/Panel.css.js +1 -1
  39. package/dist/generated/themes/RadioButton.css.js +1 -1
  40. package/dist/generated/themes/SegmentedButton.css.js +1 -1
  41. package/dist/generated/themes/Select.css.js +1 -1
  42. package/dist/generated/themes/SliderBase.css.js +1 -1
  43. package/dist/generated/themes/StepInput.css.js +1 -1
  44. package/dist/generated/themes/Switch.css.js +1 -1
  45. package/dist/generated/themes/TextArea.css.js +1 -1
  46. package/dist/generated/themes/Tokenizer.css.js +1 -1
  47. package/dist/generated/themes/Tree.css.js +1 -1
  48. package/dist/generated/themes/TreeListItem.css.js +1 -1
  49. package/dist/generated/themes/sap_belize/parameters-bundle.css.js +1 -1
  50. package/dist/generated/themes/sap_belize_hcb/parameters-bundle.css.js +1 -1
  51. package/dist/generated/themes/sap_belize_hcw/parameters-bundle.css.js +1 -1
  52. package/dist/generated/themes/sap_fiori_3/parameters-bundle.css.js +1 -1
  53. package/dist/generated/themes/sap_fiori_3_dark/parameters-bundle.css.js +1 -1
  54. package/dist/generated/themes/sap_fiori_3_hcb/parameters-bundle.css.js +1 -1
  55. package/dist/generated/themes/sap_fiori_3_hcw/parameters-bundle.css.js +1 -1
  56. package/dist/i18n/messagebundle.properties +9 -0
  57. package/dist/i18n/messagebundle_id.properties +218 -0
  58. package/package.json +7 -7
  59. package/src/BusyIndicator.hbs +1 -0
  60. package/src/Card.hbs +3 -5
  61. package/src/Card.js +44 -19
  62. package/src/Dialog.js +7 -7
  63. package/src/Icon.js +11 -1
  64. package/src/Input.js +9 -5
  65. package/src/List.hbs +3 -0
  66. package/src/List.js +93 -20
  67. package/src/Popover.js +1 -1
  68. package/src/Popup.js +5 -5
  69. package/src/Table.hbs +1 -0
  70. package/src/features/InputSuggestions.js +1 -3
  71. package/src/i18n/messagebundle.properties +9 -0
  72. package/src/i18n/messagebundle_id.properties +218 -0
  73. package/.port +0 -1
@@ -0,0 +1,218 @@
1
+
2
+ ARIA_LABEL_CARD_CONTENT=Konten Kartu
3
+
4
+ ARIA_ROLEDESCRIPTION_CARD=Kartu
5
+
6
+ ARIA_ROLEDESCRIPTION_CARD_HEADER=Header Kartu
7
+
8
+ ARIA_ROLEDESCRIPTION_INTERACTIVE_CARD_HEADER=Header Kartu Interaktif
9
+
10
+ AVATAR_TOOLTIP=Avatar
11
+
12
+ AVATAR_GROUP_DISPLAYED_HIDDEN_LABEL={0} ditampilkan, {1} disembunyikan.
13
+
14
+ AVATAR_GROUP_SHOW_COMPLETE_LIST_LABEL=Aktifkan untuk daftar lengkap.
15
+
16
+ AVATAR_GROUP_ARIA_LABEL_INDIVIDUAL=Avatar individu.
17
+
18
+ AVATAR_GROUP_ARIA_LABEL_GROUP=Avatar tergabung.
19
+
20
+ AVATAR_GROUP_MOVE=Tekan tombol PANAH untuk berpindah.
21
+
22
+ BADGE_DESCRIPTION=Lencana
23
+
24
+ BREADCRUMBS_ARIA_LABEL=Jejak Breadcrumb
25
+
26
+ BREADCRUMBS_OVERFLOW_ARIA_LABEL=Lebih Banyak
27
+
28
+ BREADCRUMBS_CANCEL_BUTTON=Batalkan
29
+
30
+ BUSY_INDICATOR_TITLE=Mohon tunggu
31
+
32
+ BUTTON_ARIA_TYPE_ACCEPT=Tindakan Positif
33
+
34
+ BUTTON_ARIA_TYPE_REJECT=Tindakan Negatif
35
+
36
+ BUTTON_ARIA_TYPE_EMPHASIZED=Ditekankan
37
+
38
+ CAROUSEL_OF_TEXT=dari
39
+
40
+ CAROUSEL_DOT_TEXT=Item {0} dari {1} ditampilkan
41
+
42
+ CAROUSEL_PREVIOUS_ARROW_TEXT=Halaman Sebelumnya
43
+
44
+ CAROUSEL_NEXT_ARROW_TEXT=Halaman Selanjutnya
45
+
46
+ COLORPALETTE_CONTAINER_LABEL=Palet Warna - Warna yang Ditentukan Sebelumnya
47
+
48
+ COLORPALETTE_POPOVER_TITLE=Palet Warna
49
+
50
+ COLORPALETTE_COLOR_LABEL=Warna
51
+
52
+ COLOR_PALETTE_DIALOG_CANCEL_BUTTON=Batalkan
53
+
54
+ COLOR_PALETTE_DIALOG_OK_BUTTON=OKE
55
+
56
+ COLOR_PALETTE_DIALOG_TITLE=Ubah Warna
57
+
58
+ COLOR_PALETTE_MORE_COLORS_TEXT=Lebih Banyak Warna...
59
+
60
+ DATEPICKER_OPEN_ICON_TITLE=Buka Pemilih
61
+
62
+ DATEPICKER_DATE_DESCRIPTION=Input Tanggal
63
+
64
+ DATETIME_DESCRIPTION=Input Tanggal Waktu
65
+
66
+ DATERANGE_DESCRIPTION=Input Rentang Tanggal
67
+
68
+ DELETE=Hapus
69
+
70
+ FILEUPLOAD_BROWSE=Telusuri...
71
+
72
+ FILEUPLOADER_TITLE=Unggah File
73
+
74
+ GROUP_HEADER_TEXT=Header Grup
75
+
76
+ SELECT_OPTIONS=Pilih Opsi
77
+
78
+ INPUT_SUGGESTIONS=Saran yang Tersedia
79
+
80
+ INPUT_SUGGESTIONS_TITLE=Pilih
81
+
82
+ INPUT_SUGGESTIONS_ONE_HIT=1 hasil tersedia
83
+
84
+ INPUT_SUGGESTIONS_MORE_HITS={0} hasil tersedia
85
+
86
+ INPUT_SUGGESTIONS_NO_HIT=Tidak ada hasil
87
+
88
+ LINK_SUBTLE=Halus
89
+
90
+ LINK_EMPHASIZED=Ditekankan
91
+
92
+ LIST_ITEM_POSITION=Cantumkan item {0} dari {1}
93
+
94
+ LIST_ITEM_SELECTED=Dipilih
95
+
96
+ LIST_ITEM_NOT_SELECTED=Tidak Dipilih
97
+
98
+ ARIA_LABEL_LIST_ITEM_CHECKBOX=Mode Banyak Pilihan
99
+
100
+ ARIA_LABEL_LIST_ITEM_RADIO_BUTTON=Pilihan Item.
101
+
102
+ MESSAGE_STRIP_CLOSE_BUTTON=Strip Pesan Tutup
103
+
104
+ MULTICOMBOBOX_DIALOG_OK_BUTTON=OKE
105
+
106
+ VALUE_STATE_ERROR_ALREADY_SELECTED=Nilai ini telah dipilih.
107
+
108
+ MULTIINPUT_ROLEDESCRIPTION_TEXT=Input Banyak Nilai
109
+
110
+ MULTIINPUT_SHOW_MORE_TOKENS={0} Lebih Banyak
111
+
112
+ PANEL_ICON=Perluas/Ciutkan
113
+
114
+ RANGE_SLIDER_ARIA_DESCRIPTION=Rentang
115
+
116
+ RANGE_SLIDER_START_HANDLE_DESCRIPTION=Pegangan kiri
117
+
118
+ RANGE_SLIDER_END_HANDLE_DESCRIPTION=Pegangan kanan
119
+
120
+ RATING_INDICATOR_TOOLTIP_TEXT=Peringkat
121
+
122
+ RATING_INDICATOR_TEXT=Indikator Peringkat
123
+
124
+ RESPONSIVE_POPOVER_CLOSE_DIALOG_BUTTON=Tolak
125
+
126
+ SEGMENTEDBUTTON_ARIA_DESCRIPTION=Kelompok tombol tersegmentasi
127
+
128
+ SEGMENTEDBUTTON_ARIA_DESCRIBEDBY=Tekan SPASI atau ENTER untuk memilih suatu item
129
+
130
+ SEGMENTEDBUTTONITEM_ARIA_DESCRIPTION=Tombol tersegmentasi
131
+
132
+ SLIDER_ARIA_DESCRIPTION=Pegangan slider
133
+
134
+ SWITCH_ON=Aktif
135
+
136
+ SWITCH_OFF=Nonaktif
137
+
138
+ LOAD_MORE_TEXT=Lebih Banyak
139
+
140
+ TABLE_HEADER_ROW_TEXT=Baris Header
141
+
142
+ TABLE_ROW_POSITION={0} dari {1}
143
+
144
+ TABLE_GROUP_ROW_ARIA_LABEL=Baris Header Grup
145
+
146
+ ARIA_LABEL_ROW_SELECTION=Pilihan Item
147
+
148
+ ARIA_LABEL_SELECT_ALL_CHECKBOX=Pilih Semua Baris
149
+
150
+ TABCONTAINER_NEXT_ICON_ACC_NAME=Selanjutnya
151
+
152
+ TABCONTAINER_PREVIOUS_ICON_ACC_NAME=Sebelumnya
153
+
154
+ TABCONTAINER_OVERFLOW_MENU_TITLE=Menu Tambahan
155
+
156
+ TEXTAREA_CHARACTERS_LEFT={0} karakter tersisa
157
+
158
+ TEXTAREA_CHARACTERS_EXCEEDED={0} karakter melebihi batas
159
+
160
+ TIMEPICKER_HOURS_LABEL=Jam
161
+
162
+ TIMEPICKER_MINUTES_LABEL=Menit
163
+
164
+ TIMEPICKER_SECONDS_LABEL=Detik
165
+
166
+ TIMEPICKER_PERIODS_LABEL=AM/PM
167
+
168
+ TIMEPICKER_SUBMIT_BUTTON=OKE
169
+
170
+ TIMEPICKER_CANCEL_BUTTON=Batalkan
171
+
172
+ TIMEPICKER_INPUT_DESCRIPTION=Input Waktu
173
+
174
+ DURATION_INPUT_DESCRIPTION=Input Durasi
175
+
176
+ DATETIME_PICKER_DATE_BUTTON=Tanggal
177
+
178
+ DATETIME_PICKER_TIME_BUTTON=Waktu
179
+
180
+ TOKEN_ARIA_DELETABLE=Dapat Dihapus
181
+
182
+ TOKENIZER_ARIA_CONTAIN_TOKEN=Tidak Ada Token
183
+
184
+ TOKENIZER_ARIA_CONTAIN_ONE_TOKEN=Berisi 1 token
185
+
186
+ TOKENIZER_ARIA_CONTAIN_SEVERAL_TOKENS=Berisi {0} token
187
+
188
+ TOKENIZER_ARIA_LABEL=Pembuat Token
189
+
190
+ TOKENIZER_POPOVER_REMOVE=Hapus
191
+
192
+ TREE_ITEM_ARIA_LABEL=Item Pohon
193
+
194
+ TREE_ITEM_EXPAND_NODE=Perluas Node
195
+
196
+ TREE_ITEM_COLLAPSE_NODE=Ciutkan Node
197
+
198
+ VALUE_STATE_ERROR=Entri tidak valid
199
+
200
+ VALUE_STATE_WARNING=Peringatan diterbitkan
201
+
202
+ VALUE_STATE_INFORMATION=Entri informatif
203
+
204
+ VALUE_STATE_SUCCESS=Entri berhasil divalidasi
205
+
206
+ CALENDAR_HEADER_NEXT_BUTTON=Selanjutnya
207
+
208
+ CALENDAR_HEADER_PREVIOUS_BUTTON=Sebelumnya
209
+
210
+ DAY_PICKER_WEEK_NUMBER_TEXT=Jumlah Minggu
211
+
212
+ DAY_PICKER_NON_WORKING_DAY=Non-Hari Kerja
213
+
214
+ DAY_PICKER_TODAY=Hari Ini
215
+
216
+ STEPINPUT_DEC_ICON_TITLE=Turunkan
217
+
218
+ STEPINPUT_INC_ICON_TITLE=Tingkatkan
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ui5/webcomponents",
3
- "version": "0.31.18",
3
+ "version": "0.31.22",
4
4
  "description": "UI5 Web Components: webcomponents.main",
5
5
  "ui5": {
6
6
  "webComponentsPackage": true
@@ -30,14 +30,14 @@
30
30
  "directory": "packages/main"
31
31
  },
32
32
  "dependencies": {
33
- "@ui5/webcomponents-base": "0.31.18",
34
- "@ui5/webcomponents-icons": "0.31.18",
35
- "@ui5/webcomponents-ie11": "0.31.18",
36
- "@ui5/webcomponents-localization": "0.31.18",
37
- "@ui5/webcomponents-theme-base": "0.31.18"
33
+ "@ui5/webcomponents-base": "0.31.22",
34
+ "@ui5/webcomponents-icons": "0.31.22",
35
+ "@ui5/webcomponents-ie11": "0.31.22",
36
+ "@ui5/webcomponents-localization": "0.31.22",
37
+ "@ui5/webcomponents-theme-base": "0.31.22"
38
38
  },
39
39
  "devDependencies": {
40
- "@ui5/webcomponents-tools": "0.31.18",
40
+ "@ui5/webcomponents-tools": "0.31.22",
41
41
  "chromedriver": "88.0.0"
42
42
  }
43
43
  }
@@ -9,6 +9,7 @@
9
9
  aria-valuemax="100"
10
10
  aria-valuetext="Busy"
11
11
  aria-labelledby="{{_id}}-label"
12
+ data-sap-focus-ref
12
13
  >
13
14
  <div class="ui5-busyindicator-circles-wrapper">
14
15
  <div class="ui5-busyindicator-circle circle-animation-0"></div>
package/src/Card.hbs CHANGED
@@ -2,8 +2,7 @@
2
2
  class="{{classes.main}}"
3
3
  dir="{{effectiveDir}}"
4
4
  role="region"
5
- aria-label="{{ariaLabelText}}"
6
- aria-labelledby="{{ariaLabelledByCard}}">
5
+ aria-label="{{ariaLabelText}}">
7
6
  {{#if hasHeader}}
8
7
  <div class="{{classes.header}}"
9
8
  @click="{{_headerClick}}"
@@ -39,8 +38,7 @@
39
38
  </div>
40
39
  {{/if}}
41
40
 
42
- <section role="group" aria-label="{{ariaCardContentLabel}}">
41
+ <div role="group" aria-label="{{ariaCardContentLabel}}">
43
42
  <slot></slot>
44
- </section>
45
- <span id="{{_id}}-desc" class="ui5-hidden-text">{{ariaCardRoleDescription}}</span>
43
+ </div>
46
44
  </div>
package/src/Card.js CHANGED
@@ -1,7 +1,6 @@
1
1
  import UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
2
2
  import litRender from "@ui5/webcomponents-base/dist/renderer/LitRenderer.js";
3
3
  import { fetchI18nBundle, getI18nBundle } from "@ui5/webcomponents-base/dist/i18nBundle.js";
4
- import { getEffectiveAriaLabelText } from "@ui5/webcomponents-base/dist/util/AriaLabelHelper.js";
5
4
  import { isSpace, isEnter } from "@ui5/webcomponents-base/dist/Keys.js";
6
5
  import Integer from "@ui5/webcomponents-base/dist/types/Integer.js";
7
6
  import CardTemplate from "./generated/templates/CardTemplate.lit.js";
@@ -114,28 +113,28 @@ const metadata = {
114
113
  },
115
114
 
116
115
  /**
117
- * Defines the aria-label attribute for the <code>ui5-card</code>
116
+ * Defines the accessible name of the component, which is used as the name of the card region and should be unique per card.
117
+ * <b>Note:</b> <code>accessibleName</code> should be always set.
118
118
  *
119
119
  * @type {String}
120
- * @since 1.0.0-rc.9
121
- * @private
122
120
  * @defaultvalue ""
121
+ * @public
122
+ * @since 1.0.0-rc.16
123
123
  */
124
- ariaLabel: {
124
+ accessibleName: {
125
125
  type: String,
126
126
  },
127
127
 
128
128
  /**
129
- * Receives id(or many ids) of the elements that label the <code>ui5-card</code>
129
+ * Defines the IDs of the elements that label the component.
130
130
  *
131
131
  * @type {String}
132
132
  * @defaultvalue ""
133
- * @private
134
- * @since 1.0.0-rc.9
133
+ * @public
134
+ * @since 1.0.0-rc.16
135
135
  */
136
- ariaLabelledby: {
136
+ accessibleNameRef: {
137
137
  type: String,
138
- defaultValue: "",
139
138
  },
140
139
 
141
140
  /**
@@ -255,12 +254,42 @@ class Card extends UI5Element {
255
254
  return !!(this.heading || this.subheading || this.status || this.hasAction || this.avatar);
256
255
  }
257
256
 
258
- get ariaLabelText() {
259
- return getEffectiveAriaLabelText(this);
260
- }
257
+ // As in 0.31 we don't have all the accessibleNameRef, accessibleName related changes downported,
258
+ // we manually add getEffectiveAriaLabelText and getAriaLabelledByTexts methods and change them,
259
+ // so they work with accessibleName and accessibleNameRef, isntead of ariaLabel and ariaLabelledby
260
+ getEffectiveAriaLabelText(el) {
261
+ if (!el.accessibleNameRef) {
262
+ if (el.accessibleName) {
263
+ return el.accessibleName;
264
+ }
265
+
266
+ return undefined;
267
+ }
268
+
269
+ return this.getAriaLabelledByTexts(el);
270
+ };
271
+
272
+ getAriaLabelledByTexts(el, ownerDocument, readyIds = "") {
273
+ const ids = (readyIds && readyIds.split(" ")) || el.accessibleNameRef.split(" ");
274
+ const owner = ownerDocument || findNodeOwner(el);
275
+ let result = "";
276
+
277
+ ids.forEach((elementId, index) => {
278
+ const element = owner.querySelector(`[id='${elementId}']`);
279
+ result += `${element ? element.textContent : ""}`;
280
+
281
+ if (index < ids.length - 1) {
282
+ result += " ";
283
+ }
284
+ });
285
+
286
+ return result;
287
+ };
261
288
 
262
- get ariaCardRoleDescription() {
263
- return this.i18nBundle.getText(ARIA_ROLEDESCRIPTION_CARD);
289
+ get ariaLabelText() {
290
+ const effectiveAriaLabelText = this.getEffectiveAriaLabelText(this),
291
+ effectiveAriaLabel = effectiveAriaLabelText ? ` ${effectiveAriaLabelText}` : "";
292
+ return this.i18nBundle.getText(ARIA_ROLEDESCRIPTION_CARD) + effectiveAriaLabel;
264
293
  }
265
294
 
266
295
  get ariaCardHeaderRoleDescription() {
@@ -293,10 +322,6 @@ class Card extends UI5Element {
293
322
  return labels.length !== 0 ? labels.join(" ") : undefined;
294
323
  }
295
324
 
296
- get ariaLabelledByCard() {
297
- return this.heading ? `${this._id}-heading ${this._id}-desc` : `${this._id}-desc`;
298
- }
299
-
300
325
  get hasAvatar() {
301
326
  return !!this.avatar.length;
302
327
  }
package/src/Dialog.js CHANGED
@@ -211,20 +211,20 @@ class Dialog extends Popup {
211
211
  get _ariaLabelledBy() { // Required by Popup.js
212
212
  let ariaLabelledById;
213
213
 
214
- if (this.headerText !== "" && !this.ariaLabel) {
214
+ if (this.headerText !== "" && !this.accessibleName) {
215
215
  ariaLabelledById = "ui5-popup-header-text";
216
216
  }
217
217
 
218
218
  return ariaLabelledById;
219
219
  }
220
220
 
221
+ /**
222
+ * Ensures ariaLabel is never null or empty string
223
+ * @returns {String|undefined}
224
+ * @protected
225
+ */
221
226
  get _ariaLabel() {
222
- let ariaLabel;
223
-
224
- if (this.header.length > 0 && !!this.accessibleName) {
225
- ariaLabel = this.accessibleName;
226
- }
227
- return this.ariaLabel ? this.ariaLabel : ariaLabel;
227
+ return this.accessibleName || undefined;
228
228
  }
229
229
 
230
230
  get _ariaModal() { // Required by Popup.js
package/src/Icon.js CHANGED
@@ -12,6 +12,7 @@ import IconTemplate from "./generated/templates/IconTemplate.lit.js";
12
12
  import iconCss from "./generated/themes/Icon.css.js";
13
13
 
14
14
  const ICON_NOT_FOUND = "ICON_NOT_FOUND";
15
+ const PRESENTATION_ROLE = "presentation";
15
16
 
16
17
  /**
17
18
  * @public
@@ -97,6 +98,7 @@ const metadata = {
97
98
 
98
99
  /**
99
100
  * Defines the aria hidden state of the component.
101
+ * Note: If the role is presentation the default value of aria-hidden will be true.
100
102
  * @private
101
103
  * @since 1.0.0-rc.15
102
104
  */
@@ -257,6 +259,10 @@ class Icon extends UI5Element {
257
259
 
258
260
  get effectiveAriaHidden() {
259
261
  if (this.ariaHidden === "") {
262
+ if (this.isDecorative) {
263
+ return true;
264
+ }
265
+
260
266
  return;
261
267
  }
262
268
 
@@ -267,6 +273,10 @@ class Icon extends UI5Element {
267
273
  return this.interactive ? "0" : "-1";
268
274
  }
269
275
 
276
+ get isDecorative() {
277
+ return this.effectiveAccessibleRole === PRESENTATION_ROLE;
278
+ }
279
+
270
280
  get effectiveAccessibleRole() {
271
281
  if (this.role) {
272
282
  return this.role;
@@ -276,7 +286,7 @@ class Icon extends UI5Element {
276
286
  return "button";
277
287
  }
278
288
 
279
- return this.effectiveAccessibleName ? "img" : "presentation";
289
+ return this.effectiveAccessibleName ? "img" : PRESENTATION_ROLE;
280
290
  }
281
291
 
282
292
  static createGlobalStyle() {
package/src/Input.js CHANGED
@@ -998,7 +998,7 @@ class Input extends UI5Element {
998
998
  }
999
999
 
1000
1000
  async getInputDOMRef() {
1001
- if (isPhone() && this.Suggestions && this.suggestionItems.length) {
1001
+ if (isPhone() && this.Suggestions) {
1002
1002
  await this.Suggestions._respPopover();
1003
1003
  return this.Suggestions && this.Suggestions.responsivePopover.querySelector(".ui5-input-inner-phone");
1004
1004
  }
@@ -1187,7 +1187,7 @@ class Input extends UI5Element {
1187
1187
  }
1188
1188
 
1189
1189
  get styles() {
1190
- return {
1190
+ const stylesObject = {
1191
1191
  popoverHeader: {
1192
1192
  "max-width": `${this._inputWidth}px`,
1193
1193
  },
@@ -1198,10 +1198,14 @@ class Input extends UI5Element {
1198
1198
  suggestionsPopover: {
1199
1199
  "max-width": `${this._inputWidth}px`,
1200
1200
  },
1201
- innerInput: {
1202
- padding: this.nativeInputWidth < 48 ? "0" : undefined,
1203
- },
1201
+ innerInput: {},
1204
1202
  };
1203
+
1204
+ if (this.nativeInputWidth < 48) {
1205
+ stylesObject.innerInput.padding = "0";
1206
+ }
1207
+
1208
+ return stylesObject;
1205
1209
  }
1206
1210
 
1207
1211
  get suggestionSeparators() {
package/src/List.hbs CHANGED
@@ -18,6 +18,8 @@
18
18
  <div id="{{_id}}-before" tabindex="0" class="ui5-list-focusarea"></div>
19
19
  {{/if}}
20
20
 
21
+ <span id="{{_id}}-modeLabel" class="ui5-hidden-text">{{ariaLabelModeText}}</span>
22
+
21
23
  <ul id="{{_id}}-listUl"
22
24
  class="ui5-list-ul"
23
25
  role="{{accessibleRole}}"
@@ -58,6 +60,7 @@
58
60
  active size="Medium"
59
61
  class="ui5-list-busy-ind"
60
62
  style="{{styles.busyInd}}"
63
+ data-sap-focus-ref
61
64
  ></ui5-busyindicator>
62
65
  </div>
63
66
  {{/if}}