Skip to content

Commit ea77d0b

Browse files
manjunathkalburgikalburgimanjunathDottenpixel
authored
Fix(accessibility) date picker & date time picker blueprint updates (#5187)
* Fix(accessibility): Bug Color contrast of marked items is not correct * fix(accessibility): Datepicker and Datetime Picker blueprints updated * Timer Picker hint text added * version details updated * review comments addressed. * feedback comments addressed * feed back comments addressed * icon alignment issue fixed * padding updated * padding issue fixed * typo updated * code refactored * code refactored * release notes updated * version updated * code refactored * code refactored * removed attributes. * Update ui/components/datetime-picker/RELEASENOTES.md Co-authored-by: dugg molidor <[email protected]> * Update ui/components/datetime-picker/base/example.jsx Co-authored-by: dugg molidor <[email protected]> * update release notes * fixed feedback comments * added datetimepicker documentation of new class. * feedback comments addressed * added spaces. * fixed vrt issues. * update release notes * update release notes * Update ui/components/datetime-picker/docs.mdx Co-authored-by: dugg molidor <[email protected]> * Update ui/components/form-element/index.jsx Co-authored-by: dugg molidor <[email protected]> * fieldLevelMessage entries to JS docs and propTypes added --------- Co-authored-by: Manjunath Kalburgi <[email protected]> Co-authored-by: dugg molidor <[email protected]>
1 parent d574d73 commit ea77d0b

File tree

16 files changed

+140
-20
lines changed

16 files changed

+140
-20
lines changed

RELEASENOTES.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,32 @@
1717
#### Fixed
1818
- Fixed `NVDA` checkbox toggle is announced twice removed aria-live="assertive"
1919

20+
### [Combobox](https://www.lightningdesignsystem.com/components/combobox)
21+
#### Added
22+
- Tooltip option provided for Date/DateTime pickers.
23+
- Updated from tabindex to tabIndex.
24+
2025
### [Data Tables](https://www.lightningdesignsystem.com/components/data-tables)
2126
#### Changed
2227
- Removed `aria-label` from table header to prevent from reading twice headers.
2328

29+
### [Datepickers](https://www.lightningdesignsystem.com/components/datepickers)
30+
#### Added
31+
- Added datepicker example with field level tooltip
32+
33+
### [Datetime Picker](https://www.lightningdesignsystem.com/components/datetime-picker)
34+
#### Added
35+
- Tooltip option provided for Date/DateTime pickers.
36+
- Added `slds-datetimepicker_has-tooltip` class to fix the icon misalignment issue.
37+
2438
### [Expandable Section](https://www.lightningdesignsystem.com/components/expandable-section)
2539
#### Changed
2640
- Replaced aria-hidden with hidden attribute for components that show/hide content
2741

42+
### [Form Element](https://www.lightningdesignsystem.com/components/form-element)
43+
#### Changed
44+
- Added field level custom message option for tooltip
45+
2846
### [Modals](https://www.lightningdesignsystem.com/components/modals)
2947
#### Changed
3048
- Optimized full size option and refactored to use CSS grid.

ui/components/_index.scss

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,9 @@
6161
'chat/base/index',
6262
'chat/past/index',
6363

64+
// DatePickers
65+
'datetime-picker/base/index',
66+
6467
// Forms
6568
'form-element/base/index',
6669
'input/base/index',

ui/components/combobox/RELEASENOTES.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
# Combobox Release Notes
44

55
<!-- ## [Unreleased] -->
6+
## 2.22.0
7+
### Added
8+
- Tooltip option provided for Date/DateTime pickers.
9+
- Updated from tabindex to tabIndex.
610
## 2.21.0
711
### Fixed
812
- Fixed by adding tabindex for `scrollable region must have keyboard access` wcag issue

ui/components/combobox/index.jsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,10 @@ export default class Combobox extends Component {
312312
isEditing,
313313
column,
314314
tabIndex,
315-
value
315+
value,
316+
hasTooltip,
317+
showTooltip,
318+
fieldLevelMessage
316319
} = this.props;
317320

318321
return (
@@ -327,6 +330,9 @@ export default class Combobox extends Component {
327330
isHorizontal={isHorizontal}
328331
isStacked={isStacked}
329332
column={column}
333+
hasTooltip={hasTooltip}
334+
showTooltip={showTooltip}
335+
fieldLevelMessage={fieldLevelMessage}
330336
>
331337
<ComboboxContainer
332338
className={containerClassName}

ui/components/combobox/listbox/index.jsx

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ export const ListboxWrapper = props => (
2020
role="listbox"
2121
aria-orientation={props.horizontal || props.inline ? 'horizontal' : null}
2222
aria-label = {props.ariaLabel}
23-
tabindex="0"
23+
tabIndex="0"
2424
aria-busy={props.ariaBusy ?props.ariaBusy:null}
2525
>
2626
{props.children}
@@ -304,9 +304,6 @@ export class Listbox extends Component {
304304
}
305305

306306
renderEntityOptions(key) {
307-
const uniqueId = this.props.hasUniqueId
308-
? _.uniqueId('option')
309-
: null;
310307
const option = this.props.snapshot[key];
311308
return (
312309
<ListboxItem key={key}>
@@ -334,9 +331,6 @@ export class Listbox extends Component {
334331
}
335332

336333
renderPlainOptions(key) {
337-
const uniqueId = this.props.hasUniqueId
338-
? _.uniqueId('option')
339-
: null;
340334
const option = this.props.snapshot[key];
341335
return (
342336
<ListboxItem key={key}>

ui/components/datepickers/RELEASENOTES.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
# Datepickers Release Notes
44

55
<!-- ## [Unreleased] -->
6-
6+
## 2.22.0
7+
### Added
8+
- Added datepicker example with field level tooltip
79
## 2.17.0
810

911
### Fixed

ui/components/datepickers/base/example.jsx

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -456,6 +456,9 @@ export let DatePickerElement = props => (
456456
hasError={props.hasError}
457457
isRequired={props.isRequired}
458458
isDisabled={props.isDisabled}
459+
hasTooltip={props.hasTooltip}
460+
showTooltip={props.showTooltip}
461+
fieldLevelMessage={props.fieldLevelMessage}
459462
dropdown={
460463
(!props.isDisabled &&
461464
<DatePicker
@@ -571,6 +574,25 @@ export let states = [
571574
/>
572575
)
573576
},
577+
{
578+
id: 'datepicker-with-tooltip',
579+
label: 'Date Picker - With tooltip',
580+
demoStyles: demoStyles,
581+
element: (
582+
<DatePickerElement
583+
idPrefix="pickerRequired"
584+
labelContent="Date"
585+
dateInputId={dateInputId + '-required'}
586+
todayActive
587+
isRequired
588+
isOpen
589+
defaultValue="Jan 1 2023"
590+
fieldLevelMessage="Format: mmm d yyyy | ex: Jan 1 2023"
591+
hasTooltip
592+
showTooltip
593+
/>
594+
)
595+
},
574596
{
575597
id: 'datepicker-disabled',
576598
label: 'Datepicker - disabled',

ui/components/datetime-picker/RELEASENOTES.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
# Datetime Picker Release Notes
44

55
<!-- ## [Unreleased] -->
6+
## 2.22.0
7+
### Added
8+
- Tooltip option provided for Date/DateTime pickers.
9+
- Added `slds-datetimepicker_has-tooltip` class to fix the icon misalignment issue.
610

711
## 2.17.0
812
### Fixed

ui/components/datetime-picker/base/_index.scss

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,10 @@
1010
* @support dev-ready
1111
* @variant
1212
*/
13+
14+
.slds-datetimepicker_has-tooltip {
15+
16+
.slds-form-element__icon {
17+
padding-top: 0;
18+
}
19+
}

ui/components/datetime-picker/base/example.jsx

Lines changed: 55 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,11 @@ const ExampleDatetimePicker = ({
3131
isDisabled,
3232
listboxData,
3333
dateDefaultValue,
34-
showRequiredIndicator
34+
showRequiredIndicator,
35+
hasTooltip,
36+
showTooltip,
37+
fieldLevelDateMessage,
38+
fieldLevelTimeMessage
3539
}) => {
3640
const focusedRef = useRef();
3741
const [focusedId, setFocusedId] = useState('');
@@ -62,7 +66,8 @@ const ExampleDatetimePicker = ({
6266
<div className="slds-form">
6367
<fieldset
6468
className={classNames('slds-form-element slds-form-element_compound', {
65-
'slds-has-error': hasError
69+
'slds-has-error': hasError,
70+
'slds-datetimepicker_has-tooltip': showTooltip
6671
})}
6772
>
6873
<legend className="slds-form-element__label slds-form-element__legend">
@@ -88,6 +93,9 @@ const ExampleDatetimePicker = ({
8893
hasError={hasError}
8994
isRequired={isRequired}
9095
showRequiredIndicator={showRequiredIndicator}
96+
hasTooltip={hasTooltip && fieldLevelDateMessage ? hasTooltip : false}
97+
showTooltip={showTooltip && fieldLevelDateMessage ? showTooltip: false}
98+
fieldLevelMessage={fieldLevelDateMessage}
9199
>
92100
<Input
93101
id={uniqueId}
@@ -116,6 +124,10 @@ const ExampleDatetimePicker = ({
116124
inputIconPosition="right"
117125
hasError={hasError}
118126
isDisabled={isDisabled}
127+
hasTooltip={hasTooltip && fieldLevelTimeMessage ? hasTooltip:null}
128+
showTooltip={showTooltip && fieldLevelTimeMessage? showTooltip:null}
129+
fieldLevelMessage={fieldLevelTimeMessage}
130+
isOpen={isOpen}
119131
// TODO: Combobox and Listbox do not currently have aria-describedby
120132
// aria-describedby={hasError && (uniqueId + "-error")}
121133

@@ -147,7 +159,6 @@ const ExampleDatetimePicker = ({
147159
resultsType="listbox"
148160
hasInteractions
149161
hasFocus={hasFocus}
150-
isOpen={isOpen}
151162
value={focusedValue}
152163
/>
153164
</div>
@@ -280,6 +291,47 @@ export let states = [
280291
/>
281292
)
282293
},
294+
{
295+
id: 'datetimepicker-with-tooltip-for-datepicker',
296+
label: 'Datetime Picker With Tooptip for datepicker',
297+
demoStyles: 'height: 20rem;',
298+
element: (
299+
<ExampleDatetimePicker
300+
dropdownIsOpen
301+
listboxData={PlainTimeOptions}
302+
isRequired
303+
dateDefaultValue="Jan 1 2023"
304+
hasTooltip
305+
showTooltip
306+
fieldLevelDateMessage="Format: mmm d yyyy | ex: Jan 1 2023"
307+
/>
308+
)
309+
},
310+
{
311+
id: 'datetimepicker-with-tooltip-for-timepicker',
312+
label: 'Datetime Picker With Tooptip for timepicker',
313+
demoStyles: 'height: 20rem;',
314+
element: (
315+
<ExampleDatetimePicker
316+
dropdown={
317+
<DatePicker
318+
todayActive
319+
dateSelected="single"
320+
dateRange="week-4"
321+
value="8:00 am"
322+
/>
323+
}
324+
dropdownIsOpen={false}
325+
dateDefaultValue="Jan 1 2023"
326+
isOpen
327+
hasFocus
328+
hasTooltip
329+
showTooltip
330+
listboxData={PlainTimeOptionsSelected}
331+
fieldLevelTimeMessage="Format: hh:mm a | ex: 12:00 AM"
332+
/>
333+
)
334+
},
283335
{
284336
id: 'disabled',
285337
label: 'Date and Time - disabled',

0 commit comments

Comments
 (0)