Content
- Required content
<table>element- Permitted content
- Flow content (though this is unlikely to be desirable)
Wrap a <table> element in this wrapper element and it will automatically provide an accessible, horizontal-overflowing-when-necessary table.
<table> element.Conditionally load the JavaScript only if the <pg-tablewrap> is present on the page at load:
if (document.querySelectorAll('pg-tablewrap').length) import('./tablewrap.min.js');
Load the script as a module in WordPress:
wp_enqueue_script_module( 'pg-tablewrap', get_theme_file_uri( 'js/pg-tablewrap.min.js' ), [], filemtime( get_theme_file_path( 'js/pg-tablewrap.min.js' ) ) );
<table> element| Name | Description | Default |
|---|---|---|
aria-labelledby |
Required. ID reference for an element containing the accessible name for region containing the table (e.g. a heading element). | undefined |
No public properties are exposed by this component.
No custom events are dispatched by this component.
No additional CSS is required beyond that called for by the overall page design.
Do note that in order to properly overflow, the region is given a style of position: relative, which will create a stacking context.
Note that the component has an aria-labelledby attribute set to the id attribute of the above <h2> and <summary> elements.
| Header 1 | Header 2 | Header 3 | Header 4 | Header 5 | Header 6 | Header 7 | Header 8 |
|---|---|---|---|---|---|---|---|
| Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Nulla sagittis dolor sit amet turpis porttitor, ac varius mauris sodales. | Nunc quis orci sit amet augue rhoncus posuere. | Mauris nec arcu eu enim sodales hendrerit at sed enim. | Phasellus ac libero a libero bibendum venenatis. | Quisque non ipsum pellentesque, imperdiet ligula eget, consectetur leo. | Pellentesque ullamcorper nunc quis urna eleifend, nec tempor sapien dapibus. | Aliquam condimentum quam sit amet dui ultricies porta eget ac nulla. |
| Pellentesque nec sapien id quam sollicitudin aliquet. | Nullam non urna nec ante aliquet tempus quis et est. | Aenean porta orci et viverra mattis. | Morbi condimentum tortor sit amet orci laoreet ullamcorper. | Nam volutpat ligula et libero facilisis cursus. | Duis pharetra purus eget diam suscipit, ac vestibulum magna tristique. | Vestibulum feugiat enim viverra nunc euismod ultrices. | Praesent hendrerit augue ac metus vulputate, sit amet ultrices tellus dapibus. |
| Quisque eu ex sed massa gravida consectetur. | Vestibulum nec quam ac dui malesuada porttitor. | Etiam vel lectus ac ipsum tempor tempor. | In commodo lorem in libero aliquam, sed ornare nisl placerat. | Pellentesque sed urna sed dolor sollicitudin ornare et varius metus. | Duis ultrices dolor ac eros venenatis rutrum. | Pellentesque consectetur est sit amet est ullamcorper interdum. | Praesent ac sem sit amet orci varius sagittis sed a nisl. |
This table should rarely overflow, and therefore shouldn't need to be containd.
Note that the component has an aria-labelledby attribute set to the id attribute of the above <h2> and <summary> elements.
| A | B | C |
|---|---|---|
| 1 | 2 | 3 |
| 1 | 10 | 11 |
| 一 | 二 | 三 |
Note that the component has an aria-labelledby attribute set to the id attribute of the above <h2> and <summary> elements.
| Header 1 | Header 2 | Header 3 | Header 4 | Header 5 | Header 6 | Header 7 | Header 8 |
|---|---|---|---|---|---|---|---|
| Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Nulla sagittis dolor sit amet turpis porttitor, ac varius mauris sodales. | Nunc quis orci sit amet augue rhoncus posuere. | Mauris nec arcu eu enim sodales hendrerit at sed enim. | Phasellus ac libero a libero bibendum venenatis. | Quisque non ipsum pellentesque, imperdiet ligula eget, consectetur leo. | Pellentesque ullamcorper nunc quis urna eleifend, nec tempor sapien dapibus. | Aliquam condimentum quam sit amet dui ultricies porta eget ac nulla. |
| Pellentesque nec sapien id quam sollicitudin aliquet. | Nullam non urna nec ante aliquet tempus quis et est. | Aenean porta orci et viverra mattis. | Morbi condimentum tortor sit amet orci laoreet ullamcorper. | Nam volutpat ligula et libero facilisis cursus. | Duis pharetra purus eget diam suscipit, ac vestibulum magna tristique. | Vestibulum feugiat enim viverra nunc euismod ultrices. | Praesent hendrerit augue ac metus vulputate, sit amet ultrices tellus dapibus. |
| Quisque eu ex sed massa gravida consectetur. | Vestibulum nec quam ac dui malesuada porttitor. | Etiam vel lectus ac ipsum tempor tempor. | In commodo lorem in libero aliquam, sed ornare nisl placerat. | Pellentesque sed urna sed dolor sollicitudin ornare et varius metus. | Duis ultrices dolor ac eros venenatis rutrum. | Pellentesque consectetur est sit amet est ullamcorper interdum. | Praesent ac sem sit amet orci varius sagittis sed a nisl. |
The following sample styles are applied to the component above.
pg-tablewrap {
background-attachment: local, local, scroll, scroll;
background-image:
linear-gradient(to right, #fff 30%, rgb(255 255 255 / 0)),
linear-gradient(to right, rgb(255 255 255 / 0), #fff 70%),
radial-gradient(farthest-side at 0% 50%, rgb(0 0 0 / .2), rgb(0 0 0 / 0)),
radial-gradient(farthest-side at 100% 50%, rgb(0 0 0 / .2), rgb(0 0 0 / 0));
background-position: 0 0, 100% 50%, 0 0, 100% 50%;
background-repeat: no-repeat;
background-size: 2.5rem 100%, 2.5rem 100%, 1rem 100%, 1rem 100%;
}
The required child <table> element is not present.
Result: a console error is thrown.
The required aria-labelledby attribute is not defined.
Result: a console error is thrown.
| Header 1 | Header 2 | Header 3 | Header 4 | Header 5 | Header 6 | Header 7 | Header 8 |
|---|---|---|---|---|---|---|---|
| Lorem ipsum dolor sit amet, consectetur adipiscing elit. | Nulla sagittis dolor sit amet turpis porttitor, ac varius mauris sodales. | Nunc quis orci sit amet augue rhoncus posuere. | Mauris nec arcu eu enim sodales hendrerit at sed enim. | Phasellus ac libero a libero bibendum venenatis. | Quisque non ipsum pellentesque, imperdiet ligula eget, consectetur leo. | Pellentesque ullamcorper nunc quis urna eleifend, nec tempor sapien dapibus. | Aliquam condimentum quam sit amet dui ultricies porta eget ac nulla. |
| Pellentesque nec sapien id quam sollicitudin aliquet. | Nullam non urna nec ante aliquet tempus quis et est. | Aenean porta orci et viverra mattis. | Morbi condimentum tortor sit amet orci laoreet ullamcorper. | Nam volutpat ligula et libero facilisis cursus. | Duis pharetra purus eget diam suscipit, ac vestibulum magna tristique. | Vestibulum feugiat enim viverra nunc euismod ultrices. | Praesent hendrerit augue ac metus vulputate, sit amet ultrices tellus dapibus. |
| Quisque eu ex sed massa gravida consectetur. | Vestibulum nec quam ac dui malesuada porttitor. | Etiam vel lectus ac ipsum tempor tempor. | In commodo lorem in libero aliquam, sed ornare nisl placerat. | Pellentesque sed urna sed dolor sollicitudin ornare et varius metus. | Duis ultrices dolor ac eros venenatis rutrum. | Pellentesque consectetur est sit amet est ullamcorper interdum. | Praesent ac sem sit amet orci varius sagittis sed a nisl. |