@workday/canvas-kit-docs 13.0.0-alpha.1014-next.0 → 13.0.0-alpha.1016-next.0

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.
@@ -304405,7 +304405,7 @@ export const docs = (typeof window !== 'undefined' && window.__docs) ||
304405
304405
  "name": "ReactNode",
304406
304406
  "url": "https://reactjs.org/docs/rendering-elements.html"
304407
304407
  },
304408
- "description": "This should be a string in most cases. HTML is supported, but only text is understood\nby assistive technology. This is true for both `label` and `describe` modes.",
304408
+ "description": "This should be a string in most cases. HTML is supported, but only text is understood\nby assistive technology. This is true for both `label` and `describe` modes.\n\n**Note:** If you use `description` type and want to pass `jsx`, it **must* be inline and **not** a component to ensure the inner text is properly translated.\n\n```jsx\n// The text will be understood as: You must accept terms and conditions\n<Tooltip type=\"description\" title={<span>You<i>must</i> accept terms and conditions</span>}/>\n\n// This will render a string including the html and will not be properly understood by voice over.\nconst MyComponent = () => <span>You<i>must</i> accept terms and conditions</span>\n<Tooltip type=\"description\" title={MyComponent/>\n```",
304409
304409
  "declarations": [
304410
304410
  {
304411
304411
  "name": "title",
@@ -304501,10 +304501,14 @@ export const docs = (typeof window !== 'undefined' && window.__docs) ||
304501
304501
  {
304502
304502
  "kind": "string",
304503
304503
  "value": "muted"
304504
+ },
304505
+ {
304506
+ "kind": "string",
304507
+ "value": "description"
304504
304508
  }
304505
304509
  ]
304506
304510
  },
304507
- "description": "Determines the tooltip type for accessibility.\n\n- `label`: Sets the accessible name for the wrapped element. Use for icons or if tooltip\n `title` prop is the same as the text content of the wrapped element. E.g. TertiaryButtons that render an icon or\n Ellipsis tooltips.\n- `describe`: Sets `aria-describedby` of the wrapped element. Use if the tooltip has additional\n information about the target.\n- `muted`: No effort is made to make the tooltip accessible to screen readers. Use if the\n tooltip contents are not useful to a screen reader or if you have handled accessibility of\n the tooltip yourself.\n\n**Note**: Assistive technology may ignore `describe` techniques based on verbosity settings.\nConsider an alternate way to inform a user of additional important information.",
304511
+ "description": "Determines the tooltip type for accessibility.\n\n- `label`: Sets the accessible name for the wrapped element. Use for icons or if tooltip\n `title` prop is the same as the text content of the wrapped element. E.g. TertiaryButtons that render an icon or\n Ellipsis tooltips.\n- **Deprecated: `describe` is deprecated, please use `description`**.`describe`: Sets `aria-describedby` of the wrapped element. Use if the tooltip has additional\n information about the target.\n- `muted`: No effort is made to make the tooltip accessible to screen readers. Use if the\n tooltip contents are not useful to a screen reader or if you have handled accessibility of\n the tooltip yourself.\n\n**Note**: Assistive technology may ignore `describe` techniques based on verbosity settings.\nConsider an alternate way to inform a user of additional important information.",
304508
304512
  "declarations": [
304509
304513
  {
304510
304514
  "name": "type",
@@ -305010,10 +305014,14 @@ export const docs = (typeof window !== 'undefined' && window.__docs) ||
305010
305014
  {
305011
305015
  "kind": "string",
305012
305016
  "value": "muted"
305017
+ },
305018
+ {
305019
+ "kind": "string",
305020
+ "value": "description"
305013
305021
  }
305014
305022
  ]
305015
305023
  },
305016
- "description": "Determines the tooltip type for accessibility.\n\n- `label`: Sets the accessible name for the wrapped element. Use for icons or if tooltip\n `title` prop is the same as the text content of the wrapped element. E.g. TertiaryButton that renders an icon or\n Ellipsis tooltips.\n- `describe`: Sets `aria-describedby` of the wrapped element. Use if the tooltip has additional\n information about the target.\n- `muted`: No effort is made to make the tooltip accessible to screen readers. Use if the\n tooltip contents are not useful to a screen reader or if you have handled accessibility of\n the tooltip yourself.\n\n**Note**: Assistive technology may ignore `describe` techniques based on verbosity settings.\nConsider an alternate way to inform a user of additional important information.",
305024
+ "description": "Determines the tooltip type for accessibility.\n\n- `label`: Sets the accessible name for the wrapped element. Use for icons or if tooltip\n `title` prop is the same as the text content of the wrapped element. E.g. TertiaryButton that renders an icon or\n Ellipsis tooltips.\n- **Deprecated: `describe` is deprecated, please use `description`.**`describe`: Sets `aria-describedby` of the wrapped element. Use if the tooltip has additional information about the target\n- `muted`: No effort is made to make the tooltip accessible to screen readers. Use if the\n tooltip contents are not useful to a screen reader or if you have handled accessibility of\n the tooltip yourself.\n- `description`: Sets `aria-description` strings for the wrapped element. Use if the tooltip has additional about the target\n\n**Note**: Assistive technology may ignore `describe` techniques based on verbosity settings.\nConsider an alternate way to inform a user of additional important information.",
305017
305025
  "declarations": [
305018
305026
  {
305019
305027
  "name": "type",
@@ -305146,6 +305154,37 @@ export const docs = (typeof window !== 'undefined' && window.__docs) ||
305146
305154
  ],
305147
305155
  "tags": {}
305148
305156
  },
305157
+ {
305158
+ "kind": "property",
305159
+ "name": "aria-description",
305160
+ "defaultValue": {
305161
+ "kind": "unknown",
305162
+ "value": "unknown",
305163
+ "text": "type === 'description' ? titleText : undefined"
305164
+ },
305165
+ "type": {
305166
+ "kind": "union",
305167
+ "value": [
305168
+ {
305169
+ "kind": "primitive",
305170
+ "value": "string"
305171
+ },
305172
+ {
305173
+ "kind": "primitive",
305174
+ "value": "undefined"
305175
+ }
305176
+ ]
305177
+ },
305178
+ "required": false,
305179
+ "description": "",
305180
+ "declarations": [
305181
+ {
305182
+ "name": "aria-description",
305183
+ "filePath": "/home/runner/work/canvas-kit/canvas-kit/modules/react/tooltip/lib/useTooltip.tsx"
305184
+ }
305185
+ ],
305186
+ "tags": {}
305187
+ },
305149
305188
  {
305150
305189
  "kind": "property",
305151
305190
  "name": "aria-label",
@@ -0,0 +1,15 @@
1
+ import {Tooltip} from '@workday/canvas-kit-react/tooltip';
2
+ import ListOfUploadedFiles from './examples/Tooltips/ListOfUploadedFiles';
3
+
4
+
5
+ # Accessible Tooltip Examples
6
+
7
+ ## Using descriptive tooltips for repeated text buttons
8
+
9
+ In this example, the "Delete" buttons are used repeatedly to reference the multiple files that have
10
+ been uploaded to the web app. The text buttons already have an accessible name (a.k.a. label)
11
+ derived from the button's inner text. The `describe` tooltip can be useful for providing more
12
+ in-context description for both low vision sighted users and screen reader users without overriding
13
+ the button name "Delete".
14
+
15
+ <ExampleCodeBlock code={ListOfUploadedFiles} />
@@ -0,0 +1,38 @@
1
+ import React from 'react';
2
+
3
+ import {DeleteButton} from '@workday/canvas-kit-react/button';
4
+ import {Flex} from '@workday/canvas-kit-react/layout';
5
+ import {Heading, Text} from '@workday/canvas-kit-react/text';
6
+ import {Tooltip} from '@workday/canvas-kit-react/tooltip';
7
+ import {trashIcon} from '@workday/canvas-system-icons-web';
8
+
9
+ const files = ['Cover Letter.docx', 'Resume.docx', 'Portfolio.pptx', 'Portrait.png'];
10
+
11
+ const listStyles = {
12
+ alignItems: 'center',
13
+ width: '35rem',
14
+ };
15
+
16
+ const deleteBtnStyle = {
17
+ marginLeft: 'auto',
18
+ };
19
+
20
+ export default () => {
21
+ return (
22
+ <>
23
+ <Heading size="medium">Uploaded Files:</Heading>
24
+ <Flex as="ul" gap="1rem" flexDirection="column">
25
+ {files.map(i => (
26
+ <Flex as="li" style={listStyles}>
27
+ <Text>{i}</Text>
28
+ <Tooltip type="description" title={i}>
29
+ <DeleteButton icon={trashIcon} style={deleteBtnStyle}>
30
+ Delete
31
+ </DeleteButton>
32
+ </Tooltip>
33
+ </Flex>
34
+ ))}
35
+ </Flex>
36
+ </>
37
+ );
38
+ };
@@ -1,6 +1,9 @@
1
- import {ExampleCodeBlock, SymbolDoc, Specifications} from '@workday/canvas-kit-docs';import Default from './examples/Default';
1
+ import {ExampleCodeBlock, SymbolDoc, Specifications} from '@workday/canvas-kit-docs';
2
+ import {InformationHighlight} from '@workday/canvas-kit-preview-react/information-highlight'
3
+ import {StatusIndicator} from '@workday/canvas-kit-preview-react/status-indicator'import Default from './examples/Default';
2
4
  import CustomContent from './examples/CustomContent';
3
5
  import DelayedTooltip from './examples/DelayedTooltip';
6
+ import DescriptionType from './examples/DescriptionType';
4
7
  import DescribeType from './examples/DescribeType';
5
8
  import Muted from './examples/Muted';
6
9
  import Placements from './examples/Placements';
@@ -62,6 +65,14 @@ and focus events.
62
65
 
63
66
  ### Describing an Element
64
67
 
68
+ <InformationHighlight variant={'caution'} className='sb-unstyled'>
69
+ <InformationHighlight.Icon />
70
+ <InformationHighlight.Heading> Caution: Describe type has been deprecated </InformationHighlight.Heading>
71
+ <InformationHighlight.Body>
72
+ Assistive technology may ignore <StatusIndicator variant='gray'><StatusIndicator.Label cs={{textTransform: 'lowercase'}}>type="describe"</StatusIndicator.Label></StatusIndicator> techniques based on verbosity settings. Please use <StatusIndicator cs={{textTransform: 'lowercase'}} variant='gray'><StatusIndicator.Label cs={{textTransform: 'lowercase'}}>type="description"</StatusIndicator.Label></StatusIndicator> on Tooltips.
73
+ </InformationHighlight.Body>
74
+ </InformationHighlight>
75
+
65
76
  The default mode for a tooltip is to label content via `aria-label`. If a tooltip is meant to
66
77
  provide ancillary information, the `type` can be set to `describe`. This will add `aria-describedby`
67
78
  to the target element. This will allow screen reader users to hear the name of the control that is
@@ -69,6 +80,25 @@ being focused and the ancillary tooltip information.
69
80
 
70
81
  <ExampleCodeBlock code={DescribeType} />
71
82
 
83
+ ### Description of an Element
84
+
85
+ The default mode for a tooltip is to assign a name to the target element with an `aria-label`
86
+ string. If a tooltip is meant to provide ancillary information, the `type` can be set to `description`.
87
+ This will add `aria-description` strings to the target element instead. This variant is useful on
88
+ text buttons and other components that already have a label or name. Use this type instead of `describe` to ensure proper aria attributes are added to the dom regardless if the tooltip is visible.
89
+
90
+ > **Note:** If you use `description` type and want to pass `jsx`, it **must* be inline and **not** a component to ensure the inner text is properly read by voiceover.
91
+ >
92
+ > ```jsx
93
+ > // The text will be understood as: You must accept terms and conditions
94
+ > <Tooltip type="description" title={<span>You<i>must</i> accept terms and conditions</span>}/>
95
+ >
96
+ > // This will render a string including the html and will not be properly understood by voice over.
97
+ > const MyComponent = () => <span>You<i>must</i> accept terms and conditions</span>
98
+ > <Tool
99
+
100
+ <ExampleCodeBlock code={DescriptionType} />
101
+
72
102
  ### Muted Tooltips
73
103
 
74
104
  If a tooltip does not need to be visible to screen reader users, or you handle accessibility of the
@@ -0,0 +1,22 @@
1
+ import React from 'react';
2
+
3
+ import {DeleteButton, SecondaryButton, TertiaryButton} from '@workday/canvas-kit-react/button';
4
+ import {Tooltip} from '@workday/canvas-kit-react/tooltip';
5
+ import {Flex} from '@workday/canvas-kit-react/layout';
6
+ import {chartConfigIcon} from '@workday/canvas-system-icons-web';
7
+
8
+ export default () => {
9
+ return (
10
+ <Flex gap="s">
11
+ <Tooltip type="description" title="Search using additional criteria">
12
+ <TertiaryButton icon={chartConfigIcon}>Advanced Search</TertiaryButton>
13
+ </Tooltip>
14
+ <Tooltip type="description" title="Create saved search">
15
+ <SecondaryButton>Save</SecondaryButton>
16
+ </Tooltip>
17
+ <Tooltip type="description" title="The service will restart after this action">
18
+ <DeleteButton>Delete</DeleteButton>
19
+ </Tooltip>
20
+ </Flex>
21
+ );
22
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@workday/canvas-kit-docs",
3
- "version": "13.0.0-alpha.1014-next.0",
3
+ "version": "13.0.0-alpha.1016-next.0",
4
4
  "description": "Documentation components of Canvas Kit components",
5
5
  "author": "Workday, Inc. (https://www.workday.com)",
6
6
  "license": "Apache-2.0",
@@ -44,10 +44,10 @@
44
44
  "dependencies": {
45
45
  "@emotion/styled": "^11.6.0",
46
46
  "@storybook/csf": "0.0.1",
47
- "@workday/canvas-kit-labs-react": "^13.0.0-alpha.1014-next.0",
48
- "@workday/canvas-kit-preview-react": "^13.0.0-alpha.1014-next.0",
49
- "@workday/canvas-kit-react": "^13.0.0-alpha.1014-next.0",
50
- "@workday/canvas-kit-styling": "^13.0.0-alpha.1014-next.0",
47
+ "@workday/canvas-kit-labs-react": "^13.0.0-alpha.1016-next.0",
48
+ "@workday/canvas-kit-preview-react": "^13.0.0-alpha.1016-next.0",
49
+ "@workday/canvas-kit-react": "^13.0.0-alpha.1016-next.0",
50
+ "@workday/canvas-kit-styling": "^13.0.0-alpha.1016-next.0",
51
51
  "@workday/canvas-system-icons-web": "^3.0.0",
52
52
  "@workday/canvas-tokens-web": "^2.1.0",
53
53
  "markdown-to-jsx": "^7.2.0",
@@ -60,5 +60,5 @@
60
60
  "mkdirp": "^1.0.3",
61
61
  "typescript": "5.0"
62
62
  },
63
- "gitHead": "f8b029fd09fb479bbd48684d4ded4b265ca35b94"
63
+ "gitHead": "adaf9ca63978245025920184f65b0019ee8e952d"
64
64
  }