Carga
Carga
This commit is contained in:
@@ -0,0 +1,899 @@
|
||||
/* *
|
||||
*
|
||||
* (c) 2009-2021 Øystein Moseng
|
||||
*
|
||||
* Default options for accessibility.
|
||||
*
|
||||
* License: www.highcharts.com/license
|
||||
*
|
||||
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
||||
*
|
||||
* */
|
||||
'use strict';
|
||||
/* *
|
||||
*
|
||||
* API Options
|
||||
*
|
||||
* */
|
||||
/**
|
||||
* Formatter callback for the accessibility announcement.
|
||||
*
|
||||
* @callback Highcharts.AccessibilityAnnouncementFormatter
|
||||
*
|
||||
* @param {Array<Highcharts.Series>} updatedSeries
|
||||
* Array of all series that received updates. If an announcement is already
|
||||
* queued, the series that received updates for that announcement are also
|
||||
* included in this array.
|
||||
*
|
||||
* @param {Highcharts.Series} [addedSeries]
|
||||
* This is provided if {@link Highcharts.Chart#addSeries} was called, and there
|
||||
* is a new series. In that case, this argument is a reference to the new
|
||||
* series.
|
||||
*
|
||||
* @param {Highcharts.Point} [addedPoint]
|
||||
* This is provided if {@link Highcharts.Series#addPoint} was called, and there
|
||||
* is a new point. In that case, this argument is a reference to the new point.
|
||||
*
|
||||
* @return {false|string}
|
||||
* The function should return a string with the text to announce to the user.
|
||||
* Return empty string to not announce anything. Return `false` to use the
|
||||
* default announcement format.
|
||||
*/
|
||||
/**
|
||||
* @interface Highcharts.PointAccessibilityOptionsObject
|
||||
*/ /**
|
||||
* Provide a description of the data point, announced to screen readers.
|
||||
* @name Highcharts.PointAccessibilityOptionsObject#description
|
||||
* @type {string|undefined}
|
||||
* @requires modules/accessibility
|
||||
* @since 7.1.0
|
||||
*/ /**
|
||||
* Enable or disable exposing the point to assistive technology
|
||||
* @name Highcharts.PointAccessibilityOptionsObject#enabled
|
||||
* @type {boolean|undefined}
|
||||
* @requires modules/accessibility
|
||||
* @since 9.0.1
|
||||
*/
|
||||
/* *
|
||||
* @interface Highcharts.PointOptionsObject in parts/Point.ts
|
||||
*/ /**
|
||||
* @name Highcharts.PointOptionsObject#accessibility
|
||||
* @type {Highcharts.PointAccessibilityOptionsObject|undefined}
|
||||
* @requires modules/accessibility
|
||||
* @since 7.1.0
|
||||
*/
|
||||
/**
|
||||
* @callback Highcharts.ScreenReaderClickCallbackFunction
|
||||
*
|
||||
* @param {global.MouseEvent} evt
|
||||
* Mouse click event
|
||||
*
|
||||
* @return {void}
|
||||
*/
|
||||
/**
|
||||
* Creates a formatted string for the screen reader module.
|
||||
*
|
||||
* @callback Highcharts.ScreenReaderFormatterCallbackFunction<T>
|
||||
*
|
||||
* @param {T} context
|
||||
* Context to format
|
||||
*
|
||||
* @return {string}
|
||||
* Formatted string for the screen reader module.
|
||||
*/
|
||||
var Options = {
|
||||
/**
|
||||
* Options for configuring accessibility for the chart. Requires the
|
||||
* [accessibility module](https://code.highcharts.com/modules/accessibility.js)
|
||||
* to be loaded. For a description of the module and information
|
||||
* on its features, see
|
||||
* [Highcharts Accessibility](https://www.highcharts.com/docs/accessibility/accessibility-module).
|
||||
*
|
||||
* @since 5.0.0
|
||||
* @requires modules/accessibility
|
||||
* @optionparent accessibility
|
||||
*/
|
||||
accessibility: {
|
||||
/**
|
||||
* Enable accessibility functionality for the chart. For more
|
||||
* information on how to include these features, and why this is
|
||||
* recommended, see [Highcharts Accessibility](https://www.highcharts.com/docs/accessibility/accessibility-module).
|
||||
*
|
||||
* Highcharts will by default emit a warning to the console if
|
||||
* the [accessibility module](https://code.highcharts.com/modules/accessibility.js)
|
||||
* is not loaded. Setting this option to `false` will override
|
||||
* and silence the warning.
|
||||
*
|
||||
* Once the module is loaded, setting this option to `false`
|
||||
* will disable the module for this chart.
|
||||
*
|
||||
* @since 5.0.0
|
||||
*/
|
||||
enabled: true,
|
||||
/**
|
||||
* Accessibility options for the screen reader information sections
|
||||
* added before and after the chart.
|
||||
*
|
||||
* @since 8.0.0
|
||||
*/
|
||||
screenReaderSection: {
|
||||
/**
|
||||
* Function to run upon clicking the "View as Data Table" link in
|
||||
* the screen reader region.
|
||||
*
|
||||
* By default Highcharts will insert and set focus to a data table
|
||||
* representation of the chart.
|
||||
*
|
||||
* @type {Highcharts.ScreenReaderClickCallbackFunction}
|
||||
* @since 8.0.0
|
||||
* @apioption accessibility.screenReaderSection.onViewDataTableClick
|
||||
*/
|
||||
/**
|
||||
* Function to run upon clicking the "Play as sound" button in
|
||||
* the screen reader region.
|
||||
*
|
||||
* By default Highcharts will call the `chart.sonify` function.
|
||||
*
|
||||
* @type {Highcharts.ScreenReaderClickCallbackFunction}
|
||||
* @since 8.0.1
|
||||
* @apioption accessibility.screenReaderSection.onPlayAsSoundClick
|
||||
*/
|
||||
/**
|
||||
* A formatter function to create the HTML contents of the hidden
|
||||
* screen reader information region before the chart. Receives one
|
||||
* argument, `chart`, referring to the chart object. Should return a
|
||||
* string with the HTML content of the region. By default this
|
||||
* returns an automatic description of the chart based on
|
||||
* [beforeChartFormat](#accessibility.screenReaderSection.beforeChartFormat).
|
||||
*
|
||||
* @type {Highcharts.ScreenReaderFormatterCallbackFunction<Highcharts.Chart>}
|
||||
* @since 8.0.0
|
||||
* @apioption accessibility.screenReaderSection.beforeChartFormatter
|
||||
*/
|
||||
/**
|
||||
* Format for the screen reader information region before the chart.
|
||||
* Supported HTML tags are `<h1-6>`, `<p>`, `<div>`, `<a>`, `<ul>`,
|
||||
* `<ol>`, `<li>`, and `<button>`. Attributes are not supported,
|
||||
* except for id on `<div>`, `<a>`, and `<button>`. Id is required
|
||||
* on `<a>` and `<button>` in the format `<tag id="abcd">`. Numbers,
|
||||
* lower- and uppercase letters, "-" and "#" are valid characters in
|
||||
* IDs.
|
||||
*
|
||||
* The headingTagName is an auto-detected heading (h1-h6) that
|
||||
* corresponds to the heading level below the previous heading in
|
||||
* the DOM.
|
||||
*
|
||||
* Set to empty string to remove the region altogether.
|
||||
*
|
||||
* @since 8.0.0
|
||||
*/
|
||||
beforeChartFormat: '<{headingTagName}>{chartTitle}</{headingTagName}>' +
|
||||
'<div>{typeDescription}</div>' +
|
||||
'<div>{chartSubtitle}</div>' +
|
||||
'<div>{chartLongdesc}</div>' +
|
||||
'<div>{playAsSoundButton}</div>' +
|
||||
'<div>{viewTableButton}</div>' +
|
||||
'<div>{xAxisDescription}</div>' +
|
||||
'<div>{yAxisDescription}</div>' +
|
||||
'<div>{annotationsTitle}{annotationsList}</div>',
|
||||
/**
|
||||
* A formatter function to create the HTML contents of the hidden
|
||||
* screen reader information region after the chart. Analogous to
|
||||
* [beforeChartFormatter](#accessibility.screenReaderSection.beforeChartFormatter).
|
||||
*
|
||||
* @type {Highcharts.ScreenReaderFormatterCallbackFunction<Highcharts.Chart>}
|
||||
* @since 8.0.0
|
||||
* @apioption accessibility.screenReaderSection.afterChartFormatter
|
||||
*/
|
||||
/**
|
||||
* Format for the screen reader information region after the chart.
|
||||
* Analogous to [beforeChartFormat](#accessibility.screenReaderSection.beforeChartFormat).
|
||||
*
|
||||
* @since 8.0.0
|
||||
*/
|
||||
afterChartFormat: '{endOfChartMarker}',
|
||||
/**
|
||||
* Date format to use to describe range of datetime axes.
|
||||
*
|
||||
* For an overview of the replacement codes, see
|
||||
* [dateFormat](/class-reference/Highcharts.Time#dateFormat).
|
||||
*
|
||||
* @see [point.dateFormat](#accessibility.point.dateFormat)
|
||||
*
|
||||
* @since 8.0.0
|
||||
*/
|
||||
axisRangeDateFormat: '%Y-%m-%d %H:%M:%S'
|
||||
},
|
||||
/**
|
||||
* Accessibility options global to all data series. Individual series
|
||||
* can also have specific [accessibility options](#plotOptions.series.accessibility)
|
||||
* set.
|
||||
*
|
||||
* @since 8.0.0
|
||||
*/
|
||||
series: {
|
||||
/**
|
||||
* Formatter function to use instead of the default for series
|
||||
* descriptions. Receives one argument, `series`, referring to the
|
||||
* series to describe. Should return a string with the description
|
||||
* of the series for a screen reader user. If `false` is returned,
|
||||
* the default formatter will be used for that series.
|
||||
*
|
||||
* @see [series.descriptionFormat](#accessibility.series.descriptionFormat)
|
||||
* @see [series.description](#plotOptions.series.description)
|
||||
*
|
||||
* @type {Highcharts.ScreenReaderFormatterCallbackFunction<Highcharts.Series>}
|
||||
* @since 8.0.0
|
||||
* @apioption accessibility.series.descriptionFormatter
|
||||
*/
|
||||
/**
|
||||
* Format to use for describing the data series group to assistive
|
||||
* technology - including screen readers.
|
||||
*
|
||||
* The series context and its subproperties are available under the
|
||||
* variable `{series}`, for example `{series.name}` for the series
|
||||
* name, and `{series.points.length}` for the number of data points.
|
||||
*
|
||||
* The chart context and its subproperties are available under the
|
||||
* variable `{chart}`, for example `{chart.series.length}` for the
|
||||
* number of series in the chart.
|
||||
*
|
||||
* `{seriesDescription}` refers to the automatic description of the
|
||||
* series type and number of points added by Highcharts by default.
|
||||
* `{authorDescription}` refers to the description added in
|
||||
* [series.description](#plotOptions.series.description) if one is
|
||||
* present. `{axisDescription}` refers to the description added if
|
||||
* the chart has multiple X or Y axes.
|
||||
*
|
||||
* Note that if [series.descriptionFormatter](#accessibility.series.descriptionFormatter)
|
||||
* is declared it will take precedence, and this option will be
|
||||
* overridden.
|
||||
*
|
||||
* @sample highcharts/accessibility/advanced-accessible
|
||||
* Accessible low-medium-high chart
|
||||
*
|
||||
* @type {string}
|
||||
* @since 10.1.0
|
||||
*/
|
||||
descriptionFormat: '{seriesDescription}{authorDescription}{axisDescription}',
|
||||
/**
|
||||
* Whether or not to add series descriptions to charts with a single
|
||||
* series.
|
||||
*
|
||||
* @since 8.0.0
|
||||
*/
|
||||
describeSingleSeries: false,
|
||||
/**
|
||||
* When a series contains more points than this, we no longer expose
|
||||
* information about individual points to screen readers.
|
||||
*
|
||||
* Set to `false` to disable.
|
||||
*
|
||||
* @type {boolean|number}
|
||||
* @since 8.0.0
|
||||
*/
|
||||
pointDescriptionEnabledThreshold: 200
|
||||
},
|
||||
/**
|
||||
* Options for descriptions of individual data points.
|
||||
*
|
||||
* @since 8.0.0
|
||||
*/
|
||||
point: {
|
||||
/**
|
||||
* Date format to use for points on datetime axes when describing
|
||||
* them to screen reader users.
|
||||
*
|
||||
* Defaults to the same format as in tooltip.
|
||||
*
|
||||
* For an overview of the replacement codes, see
|
||||
* [dateFormat](/class-reference/Highcharts.Time#dateFormat).
|
||||
*
|
||||
* @see [dateFormatter](#accessibility.point.dateFormatter)
|
||||
*
|
||||
* @type {string}
|
||||
* @since 8.0.0
|
||||
* @apioption accessibility.point.dateFormat
|
||||
*/
|
||||
/**
|
||||
* Formatter function to determine the date/time format used with
|
||||
* points on datetime axes when describing them to screen reader
|
||||
* users. Receives one argument, `point`, referring to the point
|
||||
* to describe. Should return a date format string compatible with
|
||||
* [dateFormat](/class-reference/Highcharts.Time#dateFormat).
|
||||
*
|
||||
* @see [dateFormat](#accessibility.point.dateFormat)
|
||||
*
|
||||
* @type {Highcharts.ScreenReaderFormatterCallbackFunction<Highcharts.Point>}
|
||||
* @since 8.0.0
|
||||
* @apioption accessibility.point.dateFormatter
|
||||
*/
|
||||
/**
|
||||
* Prefix to add to the values in the point descriptions. Uses
|
||||
* [tooltip.valuePrefix](#tooltip.valuePrefix) if not defined.
|
||||
*
|
||||
* @type {string}
|
||||
* @since 8.0.0
|
||||
* @apioption accessibility.point.valuePrefix
|
||||
*/
|
||||
/**
|
||||
* Suffix to add to the values in the point descriptions. Uses
|
||||
* [tooltip.valueSuffix](#tooltip.valueSuffix) if not defined.
|
||||
*
|
||||
* @type {string}
|
||||
* @since 8.0.0
|
||||
* @apioption accessibility.point.valueSuffix
|
||||
*/
|
||||
/**
|
||||
* Decimals to use for the values in the point descriptions. Uses
|
||||
* [tooltip.valueDecimals](#tooltip.valueDecimals) if not defined.
|
||||
*
|
||||
* @type {number}
|
||||
* @since 8.0.0
|
||||
* @apioption accessibility.point.valueDecimals
|
||||
*/
|
||||
/**
|
||||
* Formatter function to use instead of the default for point
|
||||
* descriptions.
|
||||
*
|
||||
* Receives one argument, `point`, referring to the point to
|
||||
* describe. Should return a string with the description of the
|
||||
* point for a screen reader user. If `false` is returned, the
|
||||
* default formatter will be used for that point.
|
||||
*
|
||||
* Note: Prefer using [accessibility.point.valueDescriptionFormat](#accessibility.point.valueDescriptionFormat)
|
||||
* instead if possible, as default functionality such as describing
|
||||
* annotations will be preserved.
|
||||
*
|
||||
* @see [accessibility.point.valueDescriptionFormat](#accessibility.point.valueDescriptionFormat)
|
||||
* @see [point.accessibility.description](#series.line.data.accessibility.description)
|
||||
*
|
||||
* @type {Highcharts.ScreenReaderFormatterCallbackFunction<Highcharts.Point>}
|
||||
* @since 8.0.0
|
||||
* @apioption accessibility.point.descriptionFormatter
|
||||
*/
|
||||
/**
|
||||
* Format to use for describing the values of data points
|
||||
* to assistive technology - including screen readers.
|
||||
* The point context is available as `{point}`.
|
||||
*
|
||||
* Other available context variables include `{index}`, `{value}`, and `{xDescription}`.
|
||||
*
|
||||
* Additionally, the series name, annotation info, and
|
||||
* description added in `point.accessibility.description`
|
||||
* is added by default if relevant. To override this, use the
|
||||
* [accessibility.point.descriptionFormatter](#accessibility.point.descriptionFormatter)
|
||||
* option.
|
||||
*
|
||||
* @see [point.accessibility.description](#series.line.data.accessibility.description)
|
||||
* @see [accessibility.point.descriptionFormatter](#accessibility.point.descriptionFormatter)
|
||||
*
|
||||
* @type {string}
|
||||
* @since 8.0.1
|
||||
*/
|
||||
valueDescriptionFormat: '{xDescription}{separator}{value}.',
|
||||
/**
|
||||
* Whether or not to describe points with the value `null` to
|
||||
* assistive technology, such as screen readers.
|
||||
*
|
||||
* @sample {highmaps} maps/demo/all-areas-as-null
|
||||
* Accessible map with null points
|
||||
*
|
||||
* @type {boolean}
|
||||
* @since 10.1.0
|
||||
*/
|
||||
describeNull: true
|
||||
},
|
||||
/**
|
||||
* Amount of landmarks/regions to create for screen reader users. More
|
||||
* landmarks can make navigation with screen readers easier, but can
|
||||
* be distracting if there are lots of charts on the page. Three modes
|
||||
* are available:
|
||||
* - `all`: Adds regions for all series, legend, information
|
||||
* region.
|
||||
* - `one`: Adds a single landmark per chart.
|
||||
* - `disabled`: No landmarks are added.
|
||||
*
|
||||
* @since 7.1.0
|
||||
* @validvalue ["all", "one", "disabled"]
|
||||
*/
|
||||
landmarkVerbosity: 'all',
|
||||
/**
|
||||
* Link the chart to an HTML element describing the contents of the
|
||||
* chart.
|
||||
*
|
||||
* It is always recommended to describe charts using visible text, to
|
||||
* improve SEO as well as accessibility for users with disabilities.
|
||||
* This option lets an HTML element with a description be linked to the
|
||||
* chart, so that screen reader users can connect the two.
|
||||
*
|
||||
* By setting this option to a string, Highcharts runs the string as an
|
||||
* HTML selector query on the entire document. If there is only a single
|
||||
* match, this element is linked to the chart. The content of the linked
|
||||
* element will be included in the chart description for screen reader
|
||||
* users.
|
||||
*
|
||||
* By default, the chart looks for an adjacent sibling element with the
|
||||
* `highcharts-description` class.
|
||||
*
|
||||
* The feature can be disabled by setting the option to an empty string,
|
||||
* or overridden by providing the
|
||||
* [accessibility.description](#accessibility.description) option.
|
||||
* Alternatively, the HTML element to link can be passed in directly as
|
||||
* an HTML node.
|
||||
*
|
||||
* If you need the description to be part of the exported image,
|
||||
* consider using the [caption](#caption) feature.
|
||||
*
|
||||
* If you need the description to be hidden visually, use the
|
||||
* [accessibility.description](#accessibility.description) option.
|
||||
*
|
||||
* @see [caption](#caption)
|
||||
* @see [description](#accessibility.description)
|
||||
* @see [typeDescription](#accessibility.typeDescription)
|
||||
*
|
||||
* @sample highcharts/accessibility/accessible-line
|
||||
* Accessible line chart
|
||||
*
|
||||
* @type {string|Highcharts.HTMLDOMElement}
|
||||
* @since 8.0.0
|
||||
*/
|
||||
linkedDescription: '*[data-highcharts-chart="{index}"] + .highcharts-description',
|
||||
/**
|
||||
* A hook for adding custom components to the accessibility module.
|
||||
* Should be an object mapping component names to instances of classes
|
||||
* inheriting from the Highcharts.AccessibilityComponent base class.
|
||||
* Remember to add the component to the
|
||||
* [keyboardNavigation.order](#accessibility.keyboardNavigation.order)
|
||||
* for the keyboard navigation to be usable.
|
||||
*
|
||||
* @sample highcharts/accessibility/custom-component
|
||||
* Custom accessibility component
|
||||
*
|
||||
* @type {*}
|
||||
* @since 7.1.0
|
||||
* @apioption accessibility.customComponents
|
||||
*/
|
||||
/**
|
||||
* Theme to apply to the chart when Windows High Contrast Mode is
|
||||
* detected. By default, a high contrast theme matching the high
|
||||
* contrast system system colors is used.
|
||||
*
|
||||
* @type {*}
|
||||
* @since 7.1.3
|
||||
* @apioption accessibility.highContrastTheme
|
||||
*/
|
||||
/**
|
||||
* A text description of the chart.
|
||||
*
|
||||
* **Note: Prefer using [linkedDescription](#accessibility.linkedDescription)
|
||||
* or [caption](#caption.text) instead.**
|
||||
*
|
||||
* If the Accessibility module is loaded, this option is included by
|
||||
* default as a long description of the chart in the hidden screen
|
||||
* reader information region.
|
||||
*
|
||||
* Note: Since Highcharts now supports captions and linked descriptions,
|
||||
* it is preferred to define the description using those methods, as a
|
||||
* visible caption/description benefits all users. If the
|
||||
* `accessibility.description` option is defined, the linked description
|
||||
* is ignored, and the caption is hidden from screen reader users.
|
||||
*
|
||||
* @see [linkedDescription](#accessibility.linkedDescription)
|
||||
* @see [caption](#caption)
|
||||
* @see [typeDescription](#accessibility.typeDescription)
|
||||
*
|
||||
* @type {string}
|
||||
* @since 5.0.0
|
||||
* @apioption accessibility.description
|
||||
*/
|
||||
/**
|
||||
* A text description of the chart type.
|
||||
*
|
||||
* If the Accessibility module is loaded, this will be included in the
|
||||
* description of the chart in the screen reader information region.
|
||||
*
|
||||
* Highcharts will by default attempt to guess the chart type, but for
|
||||
* more complex charts it is recommended to specify this property for
|
||||
* clarity.
|
||||
*
|
||||
* @type {string}
|
||||
* @since 5.0.0
|
||||
* @apioption accessibility.typeDescription
|
||||
*/
|
||||
/**
|
||||
* Options for keyboard navigation.
|
||||
*
|
||||
* @declare Highcharts.KeyboardNavigationOptionsObject
|
||||
* @since 5.0.0
|
||||
*/
|
||||
keyboardNavigation: {
|
||||
/**
|
||||
* Enable keyboard navigation for the chart.
|
||||
*
|
||||
* @since 5.0.0
|
||||
*/
|
||||
enabled: true,
|
||||
/**
|
||||
* Options for the focus border drawn around elements while
|
||||
* navigating through them.
|
||||
*
|
||||
* @sample highcharts/accessibility/custom-focus
|
||||
* Custom focus ring
|
||||
*
|
||||
* @declare Highcharts.KeyboardNavigationFocusBorderOptionsObject
|
||||
* @since 6.0.3
|
||||
*/
|
||||
focusBorder: {
|
||||
/**
|
||||
* Enable/disable focus border for chart.
|
||||
*
|
||||
* @since 6.0.3
|
||||
*/
|
||||
enabled: true,
|
||||
/**
|
||||
* Hide the browser's default focus indicator.
|
||||
*
|
||||
* @since 6.0.4
|
||||
*/
|
||||
hideBrowserFocusOutline: true,
|
||||
/**
|
||||
* Style options for the focus border drawn around elements
|
||||
* while navigating through them. Note that some browsers in
|
||||
* addition draw their own borders for focused elements. These
|
||||
* automatic borders cannot be styled by Highcharts.
|
||||
*
|
||||
* In styled mode, the border is given the
|
||||
* `.highcharts-focus-border` class.
|
||||
*
|
||||
* @type {Highcharts.CSSObject}
|
||||
* @since 6.0.3
|
||||
*/
|
||||
style: {
|
||||
/** @internal */
|
||||
color: "#335cad" /* Palette.highlightColor80 */,
|
||||
/** @internal */
|
||||
lineWidth: 2,
|
||||
/** @internal */
|
||||
borderRadius: 3
|
||||
},
|
||||
/**
|
||||
* Focus border margin around the elements.
|
||||
*
|
||||
* @since 6.0.3
|
||||
*/
|
||||
margin: 2
|
||||
},
|
||||
/**
|
||||
* Order of tab navigation in the chart. Determines which elements
|
||||
* are tabbed to first. Available elements are: `series`, `zoom`,
|
||||
* `rangeSelector`, `chartMenu`, `legend` and `container`. In
|
||||
* addition, any custom components can be added here. Adding
|
||||
* `container` first in order will make the keyboard focus stop on
|
||||
* the chart container first, requiring the user to tab again to
|
||||
* enter the chart.
|
||||
*
|
||||
* @type {Array<string>}
|
||||
* @since 7.1.0
|
||||
*/
|
||||
order: ['series', 'zoom', 'rangeSelector', 'legend', 'chartMenu'],
|
||||
/**
|
||||
* Whether or not to wrap around when reaching the end of arrow-key
|
||||
* navigation for an element in the chart.
|
||||
* @since 7.1.0
|
||||
*/
|
||||
wrapAround: true,
|
||||
/**
|
||||
* Options for the keyboard navigation of data points and series.
|
||||
*
|
||||
* @declare Highcharts.KeyboardNavigationSeriesNavigationOptionsObject
|
||||
* @since 8.0.0
|
||||
*/
|
||||
seriesNavigation: {
|
||||
/**
|
||||
* Set the keyboard navigation mode for the chart. Can be
|
||||
* "normal" or "serialize". In normal mode, left/right arrow
|
||||
* keys move between points in a series, while up/down arrow
|
||||
* keys move between series. Up/down navigation acts
|
||||
* intelligently to figure out which series makes sense to move
|
||||
* to from any given point.
|
||||
*
|
||||
* In "serialize" mode, points are instead navigated as a single
|
||||
* list. Left/right behaves as in "normal" mode. Up/down arrow
|
||||
* keys will behave like left/right. This can be useful for
|
||||
* unifying navigation behavior with/without screen readers
|
||||
* enabled.
|
||||
*
|
||||
* @type {string}
|
||||
* @default normal
|
||||
* @since 8.0.0
|
||||
* @validvalue ["normal", "serialize"]
|
||||
* @apioption accessibility.keyboardNavigation.seriesNavigation.mode
|
||||
*/
|
||||
/**
|
||||
* Skip null points when navigating through points with the
|
||||
* keyboard.
|
||||
*
|
||||
* @since 8.0.0
|
||||
*/
|
||||
skipNullPoints: true,
|
||||
/**
|
||||
* When a series contains more points than this, we no longer
|
||||
* allow keyboard navigation for it.
|
||||
*
|
||||
* Set to `false` to disable.
|
||||
*
|
||||
* @type {boolean|number}
|
||||
* @since 8.0.0
|
||||
*/
|
||||
pointNavigationEnabledThreshold: false,
|
||||
/**
|
||||
* Remember which point was focused even after navigating away
|
||||
* from the series, so that when navigating back to the series
|
||||
* you start at the last focused point.
|
||||
*
|
||||
* @type {boolean}
|
||||
* @since 10.1.0
|
||||
*/
|
||||
rememberPointFocus: false
|
||||
}
|
||||
},
|
||||
/**
|
||||
* Options for announcing new data to screen reader users. Useful
|
||||
* for dynamic data applications and drilldown.
|
||||
*
|
||||
* Keep in mind that frequent announcements will not be useful to
|
||||
* users, as they won't have time to explore the new data. For these
|
||||
* applications, consider making snapshots of the data accessible, and
|
||||
* do the announcements in batches.
|
||||
*
|
||||
* @declare Highcharts.AccessibilityAnnounceNewDataOptionsObject
|
||||
* @since 7.1.0
|
||||
*/
|
||||
announceNewData: {
|
||||
/**
|
||||
* Optional formatter callback for the announcement. Receives
|
||||
* up to three arguments. The first argument is always an array
|
||||
* of all series that received updates. If an announcement is
|
||||
* already queued, the series that received updates for that
|
||||
* announcement are also included in this array. The second
|
||||
* argument is provided if `chart.addSeries` was called, and
|
||||
* there is a new series. In that case, this argument is a
|
||||
* reference to the new series. The third argument, similarly,
|
||||
* is provided if `series.addPoint` was called, and there is a
|
||||
* new point. In that case, this argument is a reference to the
|
||||
* new point.
|
||||
*
|
||||
* The function should return a string with the text to announce
|
||||
* to the user. Return empty string to not announce anything.
|
||||
* Return `false` to use the default announcement format.
|
||||
*
|
||||
* @sample highcharts/accessibility/custom-dynamic
|
||||
* High priority live alerts
|
||||
*
|
||||
* @type {Highcharts.AccessibilityAnnouncementFormatter}
|
||||
* @apioption accessibility.announceNewData.announcementFormatter
|
||||
*/
|
||||
/**
|
||||
* Enable announcing new data to screen reader users
|
||||
* @sample highcharts/accessibility/accessible-dynamic
|
||||
* Dynamic data accessible
|
||||
*/
|
||||
enabled: false,
|
||||
/**
|
||||
* Minimum interval between announcements in milliseconds. If
|
||||
* new data arrives before this amount of time has passed, it is
|
||||
* queued for announcement. If another new data event happens
|
||||
* while an announcement is queued, the queued announcement is
|
||||
* dropped, and the latest announcement is queued instead. Set
|
||||
* to 0 to allow all announcements, but be warned that frequent
|
||||
* announcements are disturbing to users.
|
||||
*/
|
||||
minAnnounceInterval: 5000,
|
||||
/**
|
||||
* Choose whether or not the announcements should interrupt the
|
||||
* screen reader. If not enabled, the user will be notified once
|
||||
* idle. It is recommended not to enable this setting unless
|
||||
* there is a specific reason to do so.
|
||||
*/
|
||||
interruptUser: false
|
||||
}
|
||||
},
|
||||
/**
|
||||
* Accessibility options for a data point.
|
||||
*
|
||||
* @declare Highcharts.PointAccessibilityOptionsObject
|
||||
* @since 7.1.0
|
||||
* @apioption series.line.data.accessibility
|
||||
*/
|
||||
/**
|
||||
* Provide a description of the data point, announced to screen readers.
|
||||
*
|
||||
* @type {string}
|
||||
* @since 7.1.0
|
||||
* @apioption series.line.data.accessibility.description
|
||||
*/
|
||||
/**
|
||||
* Set to false to disable accessibility functionality for a specific point.
|
||||
* The point will not be included in keyboard navigation, and will not be
|
||||
* exposed to assistive technology.
|
||||
*
|
||||
* @type {boolean}
|
||||
* @since 9.0.1
|
||||
* @apioption series.line.data.accessibility.enabled
|
||||
*/
|
||||
/**
|
||||
* Accessibility options for a series.
|
||||
*
|
||||
* @declare Highcharts.SeriesAccessibilityOptionsObject
|
||||
* @since 7.1.0
|
||||
* @requires modules/accessibility
|
||||
* @apioption plotOptions.series.accessibility
|
||||
*/
|
||||
/**
|
||||
* Enable/disable accessibility functionality for a specific series.
|
||||
*
|
||||
* @type {boolean}
|
||||
* @since 7.1.0
|
||||
* @apioption plotOptions.series.accessibility.enabled
|
||||
*/
|
||||
/**
|
||||
* Provide a description of the series, announced to screen readers.
|
||||
*
|
||||
* @type {string}
|
||||
* @since 7.1.0
|
||||
* @apioption plotOptions.series.accessibility.description
|
||||
*/
|
||||
/**
|
||||
* Expose only the series element to screen readers, not its points.
|
||||
*
|
||||
* @type {boolean}
|
||||
* @since 7.1.0
|
||||
* @apioption plotOptions.series.accessibility.exposeAsGroupOnly
|
||||
*/
|
||||
/**
|
||||
* Point accessibility options for a series.
|
||||
*
|
||||
* @extends accessibility.point
|
||||
* @since 9.3.0
|
||||
* @requires modules/accessibility
|
||||
* @apioption plotOptions.series.accessibility.point
|
||||
*/
|
||||
/**
|
||||
* Formatter function to use instead of the default for point
|
||||
* descriptions. Same as `accessibility.point.descriptionFormatter`, but
|
||||
* applies to a series instead of the whole chart.
|
||||
*
|
||||
* Note: Prefer using [accessibility.point.valueDescriptionFormat](#plotOptions.series.accessibility.point.valueDescriptionFormat)
|
||||
* instead if possible, as default functionality such as describing
|
||||
* annotations will be preserved.
|
||||
*
|
||||
* @see [accessibility.point.valueDescriptionFormat](#plotOptions.series.accessibility.point.valueDescriptionFormat)
|
||||
* @see [point.accessibility.description](#series.line.data.accessibility.description)
|
||||
* @see [accessibility.point.descriptionFormatter](#accessibility.point.descriptionFormatter)
|
||||
*
|
||||
* @type {Highcharts.ScreenReaderFormatterCallbackFunction<Highcharts.Point>}
|
||||
* @since 9.3.0
|
||||
* @apioption plotOptions.series.accessibility.point.descriptionFormatter
|
||||
*/
|
||||
/**
|
||||
* Keyboard navigation for a series
|
||||
*
|
||||
* @declare Highcharts.SeriesAccessibilityKeyboardNavigationOptionsObject
|
||||
* @since 7.1.0
|
||||
* @apioption plotOptions.series.accessibility.keyboardNavigation
|
||||
*/
|
||||
/**
|
||||
* Enable/disable keyboard navigation support for a specific series.
|
||||
*
|
||||
* @type {boolean}
|
||||
* @since 7.1.0
|
||||
* @apioption plotOptions.series.accessibility.keyboardNavigation.enabled
|
||||
*/
|
||||
/**
|
||||
* Accessibility options for an annotation label.
|
||||
*
|
||||
* @declare Highcharts.AnnotationLabelAccessibilityOptionsObject
|
||||
* @since 8.0.1
|
||||
* @requires modules/accessibility
|
||||
* @apioption annotations.labelOptions.accessibility
|
||||
*/
|
||||
/**
|
||||
* Description of an annotation label for screen readers and other assistive
|
||||
* technology.
|
||||
*
|
||||
* @type {string}
|
||||
* @since 8.0.1
|
||||
* @apioption annotations.labelOptions.accessibility.description
|
||||
*/
|
||||
/**
|
||||
* Accessibility options for an axis. Requires the accessibility module.
|
||||
*
|
||||
* @declare Highcharts.AxisAccessibilityOptionsObject
|
||||
* @since 7.1.0
|
||||
* @requires modules/accessibility
|
||||
* @apioption xAxis.accessibility
|
||||
*/
|
||||
/**
|
||||
* Enable axis accessibility features, including axis information in the
|
||||
* screen reader information region. If this is disabled on the xAxis, the
|
||||
* x values are not exposed to screen readers for the individual data points
|
||||
* by default.
|
||||
*
|
||||
* @type {boolean}
|
||||
* @since 7.1.0
|
||||
* @apioption xAxis.accessibility.enabled
|
||||
*/
|
||||
/**
|
||||
* Description for an axis to expose to screen reader users.
|
||||
*
|
||||
* @type {string}
|
||||
* @since 7.1.0
|
||||
* @apioption xAxis.accessibility.description
|
||||
*/
|
||||
/**
|
||||
* Range description for an axis. Overrides the default range description.
|
||||
* Set to empty to disable range description for this axis.
|
||||
*
|
||||
* @type {string}
|
||||
* @since 7.1.0
|
||||
* @apioption xAxis.accessibility.rangeDescription
|
||||
*/
|
||||
/**
|
||||
* @optionparent legend
|
||||
*/
|
||||
legend: {
|
||||
/**
|
||||
* Accessibility options for the legend. Requires the Accessibility
|
||||
* module.
|
||||
*
|
||||
* @since 7.1.0
|
||||
* @requires modules/accessibility
|
||||
*/
|
||||
accessibility: {
|
||||
/**
|
||||
* Enable accessibility support for the legend.
|
||||
*
|
||||
* @since 7.1.0
|
||||
*/
|
||||
enabled: true,
|
||||
/**
|
||||
* Options for keyboard navigation for the legend.
|
||||
*
|
||||
* @since 7.1.0
|
||||
* @requires modules/accessibility
|
||||
*/
|
||||
keyboardNavigation: {
|
||||
/**
|
||||
* Enable keyboard navigation for the legend.
|
||||
*
|
||||
* @see [accessibility.keyboardNavigation](#accessibility.keyboardNavigation.enabled)
|
||||
*
|
||||
* @since 7.1.0
|
||||
*/
|
||||
enabled: true
|
||||
}
|
||||
}
|
||||
},
|
||||
/**
|
||||
* @optionparent exporting
|
||||
*/
|
||||
exporting: {
|
||||
/**
|
||||
* Accessibility options for the exporting menu. Requires the
|
||||
* Accessibility module.
|
||||
*
|
||||
* @since 7.1.0
|
||||
* @requires modules/accessibility
|
||||
*/
|
||||
accessibility: {
|
||||
/**
|
||||
* Enable accessibility support for the export menu.
|
||||
*
|
||||
* @since 7.1.0
|
||||
*/
|
||||
enabled: true
|
||||
}
|
||||
}
|
||||
};
|
||||
export default Options;
|
||||
@@ -0,0 +1,260 @@
|
||||
/* *
|
||||
*
|
||||
* (c) 2009-2021 Øystein Moseng
|
||||
*
|
||||
* Default options for accessibility.
|
||||
*
|
||||
* License: www.highcharts.com/license
|
||||
*
|
||||
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
||||
*
|
||||
* */
|
||||
/* eslint-disable max-len */
|
||||
/*
|
||||
* List of deprecated options:
|
||||
*
|
||||
* chart.description -> accessibility.description
|
||||
* chart.typeDescription -> accessibility.typeDescription
|
||||
* series.description -> series.accessibility.description
|
||||
* series.exposeElementToA11y -> series.accessibility.exposeAsGroupOnly
|
||||
* series.pointDescriptionFormatter ->
|
||||
* series.accessibility.pointDescriptionFormatter
|
||||
* series.accessibility.pointDescriptionFormatter ->
|
||||
* series.accessibility.point.descriptionFormatter
|
||||
* series.skipKeyboardNavigation ->
|
||||
* series.accessibility.keyboardNavigation.enabled
|
||||
* point.description -> point.accessibility.description !!!! WARNING: No longer deprecated and handled, removed for HC8.
|
||||
* axis.description -> axis.accessibility.description
|
||||
*
|
||||
* accessibility.pointDateFormat -> accessibility.point.dateFormat
|
||||
* accessibility.addTableShortcut -> Handled by screenReaderSection.beforeChartFormat
|
||||
* accessibility.pointDateFormatter -> accessibility.point.dateFormatter
|
||||
* accessibility.pointDescriptionFormatter -> accessibility.point.descriptionFormatter
|
||||
* accessibility.pointDescriptionThreshold -> accessibility.series.pointDescriptionEnabledThreshold
|
||||
* accessibility.pointNavigationThreshold -> accessibility.keyboardNavigation.seriesNavigation.pointNavigationEnabledThreshold
|
||||
* accessibility.pointValueDecimals -> accessibility.point.valueDecimals
|
||||
* accessibility.pointValuePrefix -> accessibility.point.valuePrefix
|
||||
* accessibility.pointValueSuffix -> accessibility.point.valueSuffix
|
||||
* accessibility.screenReaderSectionFormatter -> accessibility.screenReaderSection.beforeChartFormatter
|
||||
* accessibility.describeSingleSeries -> accessibility.series.describeSingleSeries
|
||||
* accessibility.seriesDescriptionFormatter -> accessibility.series.descriptionFormatter
|
||||
* accessibility.onTableAnchorClick -> accessibility.screenReaderSection.onViewDataTableClick
|
||||
* accessibility.axisRangeDateFormat -> accessibility.screenReaderSection.axisRangeDateFormat
|
||||
* accessibility.keyboardNavigation.skipNullPoints -> accessibility.keyboardNavigation.seriesNavigation.skipNullPoints
|
||||
* accessibility.keyboardNavigation.mode -> accessibility.keyboardNavigation.seriesNavigation.mode
|
||||
*
|
||||
* lang.accessibility.chartHeading -> no longer used, remove
|
||||
* lang.accessibility.legendItem -> lang.accessibility.legend.legendItem
|
||||
* lang.accessibility.legendLabel -> lang.accessibility.legend.legendLabel
|
||||
* lang.accessibility.mapZoomIn -> lang.accessibility.zoom.mapZoomIn
|
||||
* lang.accessibility.mapZoomOut -> lang.accessibility.zoom.mapZoomOut
|
||||
* lang.accessibility.resetZoomButton -> lang.accessibility.zoom.resetZoomButton
|
||||
* lang.accessibility.screenReaderRegionLabel -> lang.accessibility.screenReaderSection.beforeRegionLabel
|
||||
* lang.accessibility.rangeSelectorButton -> lang.accessibility.rangeSelector.buttonText
|
||||
* lang.accessibility.rangeSelectorMaxInput -> lang.accessibility.rangeSelector.maxInputLabel
|
||||
* lang.accessibility.rangeSelectorMinInput -> lang.accessibility.rangeSelector.minInputLabel
|
||||
* lang.accessibility.svgContainerEnd -> lang.accessibility.screenReaderSection.endOfChartMarker
|
||||
* lang.accessibility.viewAsDataTable -> lang.accessibility.table.viewAsDataTableButtonText
|
||||
* lang.accessibility.tableSummary -> lang.accessibility.table.tableSummary
|
||||
*
|
||||
*/
|
||||
/* eslint-enable max-len */
|
||||
'use strict';
|
||||
import U from '../../Core/Utilities.js';
|
||||
var error = U.error, pick = U.pick;
|
||||
/* *
|
||||
*
|
||||
* Functions
|
||||
*
|
||||
* */
|
||||
/* eslint-disable valid-jsdoc */
|
||||
/**
|
||||
* Set a new option on a root prop, where the option is defined as an array of
|
||||
* suboptions.
|
||||
* @private
|
||||
* @param root
|
||||
* @param {Array<string>} optionAsArray
|
||||
* @param {*} val
|
||||
* @return {void}
|
||||
*/
|
||||
function traverseSetOption(root, optionAsArray, val) {
|
||||
var opt = root, prop, i = 0;
|
||||
for (; i < optionAsArray.length - 1; ++i) {
|
||||
prop = optionAsArray[i];
|
||||
opt = opt[prop] = pick(opt[prop], {});
|
||||
}
|
||||
opt[optionAsArray[optionAsArray.length - 1]] = val;
|
||||
}
|
||||
/**
|
||||
* If we have a clear root option node for old and new options and a mapping
|
||||
* between, we can use this generic function for the copy and warn logic.
|
||||
*/
|
||||
function deprecateFromOptionsMap(chart, rootOldAsArray, rootNewAsArray, mapToNewOptions) {
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
function getChildProp(root, propAsArray) {
|
||||
return propAsArray.reduce(function (acc, cur) {
|
||||
return acc[cur];
|
||||
}, root);
|
||||
}
|
||||
var rootOld = getChildProp(chart.options, rootOldAsArray), rootNew = getChildProp(chart.options, rootNewAsArray);
|
||||
Object.keys(mapToNewOptions).forEach(function (oldOptionKey) {
|
||||
var _a;
|
||||
var val = rootOld[oldOptionKey];
|
||||
if (typeof val !== 'undefined') {
|
||||
traverseSetOption(rootNew, mapToNewOptions[oldOptionKey], val);
|
||||
error(32, false, chart, (_a = {},
|
||||
_a[rootOldAsArray.join('.') + '.' + oldOptionKey] = (rootNewAsArray.join('.') + '.' +
|
||||
mapToNewOptions[oldOptionKey].join('.')),
|
||||
_a));
|
||||
}
|
||||
});
|
||||
}
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
function copyDeprecatedChartOptions(chart) {
|
||||
var chartOptions = chart.options.chart, a11yOptions = chart.options.accessibility || {};
|
||||
['description', 'typeDescription'].forEach(function (prop) {
|
||||
var _a;
|
||||
if (chartOptions[prop]) {
|
||||
a11yOptions[prop] = chartOptions[prop];
|
||||
error(32, false, chart, (_a = {}, _a["chart.".concat(prop)] = "use accessibility.".concat(prop), _a));
|
||||
}
|
||||
});
|
||||
}
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
function copyDeprecatedAxisOptions(chart) {
|
||||
chart.axes.forEach(function (axis) {
|
||||
var opts = axis.options;
|
||||
if (opts && opts.description) {
|
||||
opts.accessibility = opts.accessibility || {};
|
||||
opts.accessibility.description = opts.description;
|
||||
error(32, false, chart, {
|
||||
'axis.description': 'use axis.accessibility.description'
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
function copyDeprecatedSeriesOptions(chart) {
|
||||
// Map of deprecated series options. New options are defined as
|
||||
// arrays of paths under series.options.
|
||||
var oldToNewSeriesOptions = {
|
||||
description: ['accessibility', 'description'],
|
||||
exposeElementToA11y: ['accessibility', 'exposeAsGroupOnly'],
|
||||
pointDescriptionFormatter: [
|
||||
'accessibility', 'point', 'descriptionFormatter'
|
||||
],
|
||||
skipKeyboardNavigation: [
|
||||
'accessibility', 'keyboardNavigation', 'enabled'
|
||||
],
|
||||
'accessibility.pointDescriptionFormatter': [
|
||||
'accessibility', 'point', 'descriptionFormatter'
|
||||
]
|
||||
};
|
||||
chart.series.forEach(function (series) {
|
||||
// Handle series wide options
|
||||
Object.keys(oldToNewSeriesOptions).forEach(function (oldOption) {
|
||||
var _a;
|
||||
var optionVal = series.options[oldOption];
|
||||
// Special case
|
||||
if (oldOption === 'accessibility.pointDescriptionFormatter') {
|
||||
optionVal = (series.options.accessibility &&
|
||||
series.options.accessibility
|
||||
.pointDescriptionFormatter);
|
||||
}
|
||||
if (typeof optionVal !== 'undefined') {
|
||||
// Set the new option
|
||||
traverseSetOption(series.options, oldToNewSeriesOptions[oldOption],
|
||||
// Note that skipKeyboardNavigation has inverted option
|
||||
// value, since we set enabled rather than disabled
|
||||
oldOption === 'skipKeyboardNavigation' ?
|
||||
!optionVal : optionVal);
|
||||
error(32, false, chart, (_a = {},
|
||||
_a["series.".concat(oldOption)] = ('series.' +
|
||||
oldToNewSeriesOptions[oldOption].join('.')),
|
||||
_a));
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
function copyDeprecatedTopLevelAccessibilityOptions(chart) {
|
||||
deprecateFromOptionsMap(chart, ['accessibility'], ['accessibility'], {
|
||||
pointDateFormat: ['point', 'dateFormat'],
|
||||
pointDateFormatter: ['point', 'dateFormatter'],
|
||||
pointDescriptionFormatter: ['point', 'descriptionFormatter'],
|
||||
pointDescriptionThreshold: ['series',
|
||||
'pointDescriptionEnabledThreshold'],
|
||||
pointNavigationThreshold: ['keyboardNavigation', 'seriesNavigation',
|
||||
'pointNavigationEnabledThreshold'],
|
||||
pointValueDecimals: ['point', 'valueDecimals'],
|
||||
pointValuePrefix: ['point', 'valuePrefix'],
|
||||
pointValueSuffix: ['point', 'valueSuffix'],
|
||||
screenReaderSectionFormatter: ['screenReaderSection',
|
||||
'beforeChartFormatter'],
|
||||
describeSingleSeries: ['series', 'describeSingleSeries'],
|
||||
seriesDescriptionFormatter: ['series', 'descriptionFormatter'],
|
||||
onTableAnchorClick: ['screenReaderSection', 'onViewDataTableClick'],
|
||||
axisRangeDateFormat: ['screenReaderSection', 'axisRangeDateFormat']
|
||||
});
|
||||
}
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
function copyDeprecatedKeyboardNavigationOptions(chart) {
|
||||
deprecateFromOptionsMap(chart, ['accessibility', 'keyboardNavigation'], ['accessibility', 'keyboardNavigation', 'seriesNavigation'], {
|
||||
skipNullPoints: ['skipNullPoints'],
|
||||
mode: ['mode']
|
||||
});
|
||||
}
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
function copyDeprecatedLangOptions(chart) {
|
||||
deprecateFromOptionsMap(chart, ['lang', 'accessibility'], ['lang', 'accessibility'], {
|
||||
legendItem: ['legend', 'legendItem'],
|
||||
legendLabel: ['legend', 'legendLabel'],
|
||||
mapZoomIn: ['zoom', 'mapZoomIn'],
|
||||
mapZoomOut: ['zoom', 'mapZoomOut'],
|
||||
resetZoomButton: ['zoom', 'resetZoomButton'],
|
||||
screenReaderRegionLabel: ['screenReaderSection',
|
||||
'beforeRegionLabel'],
|
||||
rangeSelectorButton: ['rangeSelector', 'buttonText'],
|
||||
rangeSelectorMaxInput: ['rangeSelector', 'maxInputLabel'],
|
||||
rangeSelectorMinInput: ['rangeSelector', 'minInputLabel'],
|
||||
svgContainerEnd: ['screenReaderSection', 'endOfChartMarker'],
|
||||
viewAsDataTable: ['table', 'viewAsDataTableButtonText'],
|
||||
tableSummary: ['table', 'tableSummary']
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Copy options that are deprecated over to new options. Logs warnings to
|
||||
* console if deprecated options are used.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
function copyDeprecatedOptions(chart) {
|
||||
copyDeprecatedChartOptions(chart);
|
||||
copyDeprecatedAxisOptions(chart);
|
||||
if (chart.series) {
|
||||
copyDeprecatedSeriesOptions(chart);
|
||||
}
|
||||
copyDeprecatedTopLevelAccessibilityOptions(chart);
|
||||
copyDeprecatedKeyboardNavigationOptions(chart);
|
||||
copyDeprecatedLangOptions(chart);
|
||||
}
|
||||
/* *
|
||||
*
|
||||
* Default Export
|
||||
*
|
||||
* */
|
||||
export default copyDeprecatedOptions;
|
||||
@@ -0,0 +1,354 @@
|
||||
/* *
|
||||
*
|
||||
* (c) 2009-2021 Øystein Moseng
|
||||
*
|
||||
* Default lang/i18n options for accessibility.
|
||||
*
|
||||
* License: www.highcharts.com/license
|
||||
*
|
||||
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
||||
*
|
||||
* */
|
||||
'use strict';
|
||||
/* *
|
||||
*
|
||||
* API Options
|
||||
*
|
||||
* */
|
||||
var langOptions = {
|
||||
/**
|
||||
* Configure the accessibility strings in the chart. Requires the
|
||||
* [accessibility module](https://code.highcharts.com/modules/accessibility.js)
|
||||
* to be loaded. For a description of the module and information on its
|
||||
* features, see
|
||||
* [Highcharts Accessibility](https://www.highcharts.com/docs/chart-concepts/accessibility).
|
||||
*
|
||||
* For more dynamic control over the accessibility functionality, see
|
||||
* [accessibility.point.descriptionFormatter](#accessibility.point.descriptionFormatter),
|
||||
* [accessibility.series.descriptionFormatter](#accessibility.series.descriptionFormatter),
|
||||
* and
|
||||
* [accessibility.screenReaderSection.beforeChartFormatter](#accessibility.screenReaderSection.beforeChartFormatter).
|
||||
*
|
||||
* @since 6.0.6
|
||||
* @optionparent lang.accessibility
|
||||
*/
|
||||
accessibility: {
|
||||
defaultChartTitle: 'Chart',
|
||||
chartContainerLabel: '{title}. Highcharts interactive chart.',
|
||||
svgContainerLabel: 'Interactive chart',
|
||||
drillUpButton: '{buttonText}',
|
||||
credits: 'Chart credits: {creditsStr}',
|
||||
/**
|
||||
* Thousands separator to use when formatting numbers for screen
|
||||
* readers. Note that many screen readers will not handle space as a
|
||||
* thousands separator, and will consider "11 700" as two numbers.
|
||||
*
|
||||
* Set to `null` to use the separator defined in
|
||||
* [lang.thousandsSep](lang.thousandsSep).
|
||||
*
|
||||
* @since 7.1.0
|
||||
*/
|
||||
thousandsSep: ',',
|
||||
/**
|
||||
* Title element text for the chart SVG element. Leave this
|
||||
* empty to disable adding the title element. Browsers will display
|
||||
* this content when hovering over elements in the chart. Assistive
|
||||
* technology may use this element to label the chart.
|
||||
*
|
||||
* @since 6.0.8
|
||||
*/
|
||||
svgContainerTitle: '',
|
||||
/**
|
||||
* Set a label on the container wrapping the SVG.
|
||||
*
|
||||
* @see [chartContainerLabel](#lang.accessibility.chartContainerLabel)
|
||||
*
|
||||
* @since 8.0.0
|
||||
*/
|
||||
graphicContainerLabel: '',
|
||||
/**
|
||||
* Language options for the screen reader information sections added
|
||||
* before and after the charts.
|
||||
*
|
||||
* @since 8.0.0
|
||||
*/
|
||||
screenReaderSection: {
|
||||
beforeRegionLabel: '',
|
||||
afterRegionLabel: '',
|
||||
/**
|
||||
* Language options for annotation descriptions.
|
||||
*
|
||||
* @since 8.0.1
|
||||
*/
|
||||
annotations: {
|
||||
heading: 'Chart annotations summary',
|
||||
descriptionSinglePoint: ('{annotationText}. Related to {annotationPoint}'),
|
||||
descriptionMultiplePoints: ('{annotationText}. Related to {annotationPoint}' +
|
||||
'{ Also related to, #each(additionalAnnotationPoints)}'),
|
||||
descriptionNoPoints: '{annotationText}'
|
||||
},
|
||||
/**
|
||||
* Label for the end of the chart. Announced by screen readers.
|
||||
*
|
||||
* @since 8.0.0
|
||||
*/
|
||||
endOfChartMarker: 'End of interactive chart.'
|
||||
},
|
||||
/**
|
||||
* Language options for sonification.
|
||||
*
|
||||
* @since 8.0.1
|
||||
*/
|
||||
sonification: {
|
||||
playAsSoundButtonText: 'Play as sound, {chartTitle}',
|
||||
playAsSoundClickAnnouncement: 'Play'
|
||||
},
|
||||
/**
|
||||
* Language options for accessibility of the legend.
|
||||
*
|
||||
* @since 8.0.0
|
||||
*/
|
||||
legend: {
|
||||
legendLabelNoTitle: 'Toggle series visibility, {chartTitle}',
|
||||
legendLabel: 'Chart legend: {legendTitle}',
|
||||
legendItem: 'Show {itemName}'
|
||||
},
|
||||
/**
|
||||
* Chart and map zoom accessibility language options.
|
||||
*
|
||||
* @since 8.0.0
|
||||
*/
|
||||
zoom: {
|
||||
mapZoomIn: 'Zoom chart',
|
||||
mapZoomOut: 'Zoom out chart',
|
||||
resetZoomButton: 'Reset zoom'
|
||||
},
|
||||
/**
|
||||
* Range selector language options for accessibility.
|
||||
*
|
||||
* @since 8.0.0
|
||||
*/
|
||||
rangeSelector: {
|
||||
dropdownLabel: '{rangeTitle}',
|
||||
minInputLabel: 'Select start date.',
|
||||
maxInputLabel: 'Select end date.',
|
||||
clickButtonAnnouncement: 'Viewing {axisRangeDescription}'
|
||||
},
|
||||
/**
|
||||
* Accessibility language options for the data table.
|
||||
*
|
||||
* @since 8.0.0
|
||||
*/
|
||||
table: {
|
||||
viewAsDataTableButtonText: 'View as data table, {chartTitle}',
|
||||
tableSummary: 'Table representation of chart.'
|
||||
},
|
||||
/**
|
||||
* Default announcement for new data in charts. If addPoint or
|
||||
* addSeries is used, and only one series/point is added, the
|
||||
* `newPointAnnounce` and `newSeriesAnnounce` strings are used.
|
||||
* The `...Single` versions will be used if there is only one chart
|
||||
* on the page, and the `...Multiple` versions will be used if there
|
||||
* are multiple charts on the page. For all other new data events,
|
||||
* the `newDataAnnounce` string will be used.
|
||||
*
|
||||
* @since 7.1.0
|
||||
*/
|
||||
announceNewData: {
|
||||
newDataAnnounce: 'Updated data for chart {chartTitle}',
|
||||
newSeriesAnnounceSingle: 'New data series: {seriesDesc}',
|
||||
newPointAnnounceSingle: 'New data point: {pointDesc}',
|
||||
newSeriesAnnounceMultiple: 'New data series in chart {chartTitle}: {seriesDesc}',
|
||||
newPointAnnounceMultiple: 'New data point in chart {chartTitle}: {pointDesc}'
|
||||
},
|
||||
/**
|
||||
* Descriptions of lesser known series types. The relevant
|
||||
* description is added to the screen reader information region
|
||||
* when these series types are used.
|
||||
*
|
||||
* @since 6.0.6
|
||||
*/
|
||||
seriesTypeDescriptions: {
|
||||
boxplot: 'Box plot charts are typically used to display ' +
|
||||
'groups of statistical data. Each data point in the ' +
|
||||
'chart can have up to 5 values: minimum, lower quartile, ' +
|
||||
'median, upper quartile, and maximum.',
|
||||
arearange: 'Arearange charts are line charts displaying a ' +
|
||||
'range between a lower and higher value for each point.',
|
||||
areasplinerange: 'These charts are line charts displaying a ' +
|
||||
'range between a lower and higher value for each point.',
|
||||
bubble: 'Bubble charts are scatter charts where each data ' +
|
||||
'point also has a size value.',
|
||||
columnrange: 'Columnrange charts are column charts ' +
|
||||
'displaying a range between a lower and higher value for ' +
|
||||
'each point.',
|
||||
errorbar: 'Errorbar series are used to display the ' +
|
||||
'variability of the data.',
|
||||
funnel: 'Funnel charts are used to display reduction of data ' +
|
||||
'in stages.',
|
||||
pyramid: 'Pyramid charts consist of a single pyramid with ' +
|
||||
'item heights corresponding to each point value.',
|
||||
waterfall: 'A waterfall chart is a column chart where each ' +
|
||||
'column contributes towards a total end value.'
|
||||
},
|
||||
/**
|
||||
* Chart type description strings. This is added to the chart
|
||||
* information region.
|
||||
*
|
||||
* If there is only a single series type used in the chart, we use
|
||||
* the format string for the series type, or default if missing.
|
||||
* There is one format string for cases where there is only a single
|
||||
* series in the chart, and one for multiple series of the same
|
||||
* type.
|
||||
*
|
||||
* @since 6.0.6
|
||||
*/
|
||||
chartTypes: {
|
||||
/* eslint-disable max-len */
|
||||
emptyChart: 'Empty chart',
|
||||
mapTypeDescription: 'Map of {mapTitle} with {numSeries} data series.',
|
||||
unknownMap: 'Map of unspecified region with {numSeries} data series.',
|
||||
combinationChart: 'Combination chart with {numSeries} data series.',
|
||||
defaultSingle: 'Chart with {numPoints} data {#plural(numPoints, points, point)}.',
|
||||
defaultMultiple: 'Chart with {numSeries} data series.',
|
||||
splineSingle: 'Line chart with {numPoints} data {#plural(numPoints, points, point)}.',
|
||||
splineMultiple: 'Line chart with {numSeries} lines.',
|
||||
lineSingle: 'Line chart with {numPoints} data {#plural(numPoints, points, point)}.',
|
||||
lineMultiple: 'Line chart with {numSeries} lines.',
|
||||
columnSingle: 'Bar chart with {numPoints} {#plural(numPoints, bars, bar)}.',
|
||||
columnMultiple: 'Bar chart with {numSeries} data series.',
|
||||
barSingle: 'Bar chart with {numPoints} {#plural(numPoints, bars, bar)}.',
|
||||
barMultiple: 'Bar chart with {numSeries} data series.',
|
||||
pieSingle: 'Pie chart with {numPoints} {#plural(numPoints, slices, slice)}.',
|
||||
pieMultiple: 'Pie chart with {numSeries} pies.',
|
||||
scatterSingle: 'Scatter chart with {numPoints} {#plural(numPoints, points, point)}.',
|
||||
scatterMultiple: 'Scatter chart with {numSeries} data series.',
|
||||
boxplotSingle: 'Boxplot with {numPoints} {#plural(numPoints, boxes, box)}.',
|
||||
boxplotMultiple: 'Boxplot with {numSeries} data series.',
|
||||
bubbleSingle: 'Bubble chart with {numPoints} {#plural(numPoints, bubbles, bubble)}.',
|
||||
bubbleMultiple: 'Bubble chart with {numSeries} data series.'
|
||||
},
|
||||
/**
|
||||
* Axis description format strings.
|
||||
*
|
||||
* @since 6.0.6
|
||||
*/
|
||||
axis: {
|
||||
/* eslint-disable max-len */
|
||||
xAxisDescriptionSingular: 'The chart has 1 X axis displaying {names[0]}. {ranges[0]}',
|
||||
xAxisDescriptionPlural: 'The chart has {numAxes} X axes displaying {#each(names, -1) }and {names[-1]}.',
|
||||
yAxisDescriptionSingular: 'The chart has 1 Y axis displaying {names[0]}. {ranges[0]}',
|
||||
yAxisDescriptionPlural: 'The chart has {numAxes} Y axes displaying {#each(names, -1) }and {names[-1]}.',
|
||||
timeRangeDays: 'Data range: {range} days.',
|
||||
timeRangeHours: 'Data range: {range} hours.',
|
||||
timeRangeMinutes: 'Data range: {range} minutes.',
|
||||
timeRangeSeconds: 'Data range: {range} seconds.',
|
||||
rangeFromTo: 'Data ranges from {rangeFrom} to {rangeTo}.',
|
||||
rangeCategories: 'Data range: {numCategories} categories.'
|
||||
},
|
||||
/**
|
||||
* Exporting menu format strings for accessibility module.
|
||||
*
|
||||
* @since 6.0.6
|
||||
*/
|
||||
exporting: {
|
||||
chartMenuLabel: 'Chart menu',
|
||||
menuButtonLabel: 'View chart menu, {chartTitle}'
|
||||
},
|
||||
/**
|
||||
* Lang configuration for different series types. For more dynamic
|
||||
* control over the series element descriptions, see
|
||||
* [accessibility.seriesDescriptionFormatter](#accessibility.seriesDescriptionFormatter).
|
||||
*
|
||||
* @since 6.0.6
|
||||
*/
|
||||
series: {
|
||||
/**
|
||||
* Lang configuration for the series main summary. Each series
|
||||
* type has two modes:
|
||||
*
|
||||
* 1. This series type is the only series type used in the
|
||||
* chart
|
||||
*
|
||||
* 2. This is a combination chart with multiple series types
|
||||
*
|
||||
* If a definition does not exist for the specific series type
|
||||
* and mode, the 'default' lang definitions are used.
|
||||
*
|
||||
* Chart and its subproperties can be accessed with the `{chart}` variable.
|
||||
* The series and its subproperties can be accessed with the `{series}` variable.
|
||||
*
|
||||
* The series index (starting from 1) can be accessed with the `{seriesNumber}` variable.
|
||||
*
|
||||
* @since 6.0.6
|
||||
*/
|
||||
summary: {
|
||||
/* eslint-disable max-len */
|
||||
'default': '{series.name}, series {seriesNumber} of {chart.series.length} with {series.points.length} data {#plural(series.points.length, points, point)}.',
|
||||
defaultCombination: '{series.name}, series {seriesNumber} of {chart.series.length} with {series.points.length} data {#plural(series.points.length, points, point)}.',
|
||||
line: '{series.name}, line {seriesNumber} of {chart.series.length} with {series.points.length} data {#plural(series.points.length, points, point)}.',
|
||||
lineCombination: '{series.name}, series {seriesNumber} of {chart.series.length}. Line with {series.points.length} data {#plural(series.points.length, points, point)}.',
|
||||
spline: '{series.name}, line {seriesNumber} of {chart.series.length} with {series.points.length} data {#plural(series.points.length, points, point)}.',
|
||||
splineCombination: '{series.name}, series {seriesNumber} of {chart.series.length}. Line with {series.points.length} data {#plural(series.points.length, points, point)}.',
|
||||
column: '{series.name}, bar series {seriesNumber} of {chart.series.length} with {series.points.length} {#plural(series.points.length, bars, bar)}.',
|
||||
columnCombination: '{series.name}, series {seriesNumber} of {chart.series.length}. Bar series with {series.points.length} {#plural(series.points.length, bars, bar)}.',
|
||||
bar: '{series.name}, bar series {seriesNumber} of {chart.series.length} with {series.points.length} {#plural(series.points.length, bars, bar)}.',
|
||||
barCombination: '{series.name}, series {seriesNumber} of {chart.series.length}. Bar series with {series.points.length} {#plural(series.points.length, bars, bar)}.',
|
||||
pie: '{series.name}, pie {seriesNumber} of {chart.series.length} with {series.points.length} {#plural(series.points.length, slices, slice)}.',
|
||||
pieCombination: '{series.name}, series {seriesNumber} of {chart.series.length}. Pie with {series.points.length} {#plural(series.points.length, slices, slice)}.',
|
||||
scatter: '{series.name}, scatter plot {seriesNumber} of {chart.series.length} with {series.points.length} {#plural(series.points.length, points, point)}.',
|
||||
scatterCombination: '{series.name}, series {seriesNumber} of {chart.series.length}, scatter plot with {series.points.length} {#plural(series.points.length, points, point)}.',
|
||||
boxplot: '{series.name}, boxplot {seriesNumber} of {chart.series.length} with {series.points.length} {#plural(series.points.length, boxes, box)}.',
|
||||
boxplotCombination: '{series.name}, series {seriesNumber} of {chart.series.length}. Boxplot with {series.points.length} {#plural(series.points.length, boxes, box)}.',
|
||||
bubble: '{series.name}, bubble series {seriesNumber} of {chart.series.length} with {series.points.length} {#plural(series.points.length, bubbles, bubble)}.',
|
||||
bubbleCombination: '{series.name}, series {seriesNumber} of {chart.series.length}. Bubble series with {series.points.length} {#plural(series.points.length, bubbles, bubble)}.',
|
||||
map: '{series.name}, map {seriesNumber} of {chart.series.length} with {series.points.length} {#plural(series.points.length, areas, area)}.',
|
||||
mapCombination: '{series.name}, series {seriesNumber} of {chart.series.length}. Map with {series.points.length} {#plural(series.points.length, areas, area)}.',
|
||||
mapline: '{series.name}, line {seriesNumber} of {chart.series.length} with {series.points.length} data {#plural(series.points.length, points, point)}.',
|
||||
maplineCombination: '{series.name}, series {seriesNumber} of {chart.series.length}. Line with {series.points.length} data {#plural(series.points.length, points, point)}.',
|
||||
mapbubble: '{series.name}, bubble series {seriesNumber} of {chart.series.length} with {series.points.length} {#plural(series.points.length, bubbles, bubble)}.',
|
||||
mapbubbleCombination: '{series.name}, series {seriesNumber} of {chart.series.length}. Bubble series with {series.points.length} {#plural(series.points.length, bubbles, bubble)}.'
|
||||
},
|
||||
/**
|
||||
* User supplied description text. This is added in the point
|
||||
* comment description by default if present.
|
||||
*
|
||||
* @since 6.0.6
|
||||
*/
|
||||
description: '{description}',
|
||||
/**
|
||||
* xAxis description for series if there are multiple xAxes in
|
||||
* the chart.
|
||||
*
|
||||
* @since 6.0.6
|
||||
*/
|
||||
xAxisDescription: 'X axis, {name}',
|
||||
/**
|
||||
* yAxis description for series if there are multiple yAxes in
|
||||
* the chart.
|
||||
*
|
||||
* @since 6.0.6
|
||||
*/
|
||||
yAxisDescription: 'Y axis, {name}',
|
||||
/**
|
||||
* Description for the value of null points.
|
||||
*
|
||||
* @since 8.0.0
|
||||
*/
|
||||
nullPointValue: 'No value',
|
||||
/**
|
||||
* Description for annotations on a point, as it is made available
|
||||
* to assistive technology.
|
||||
*
|
||||
* @since 8.0.1
|
||||
*/
|
||||
pointAnnotationsDescription: '{Annotation: #each(annotations). }'
|
||||
}
|
||||
}
|
||||
};
|
||||
/* *
|
||||
*
|
||||
* Default Export
|
||||
*
|
||||
* */
|
||||
export default langOptions;
|
||||
Reference in New Issue
Block a user