GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GeezerVison is showing tabpanelwidget.com — TABPANEL WIDGET DemoOptionsNote: if the viewport is too narrow, the Widget displays as an Accordion and changing its width won't switch "behavior" SemanticProgressive enhancementThe Widget is markup-agnostic, eliminating the need for jump-links. The document remains meaningful even without JavaScript support. This link is here to test keyboard navigation.A11YFirst class support for screen-reader usersARIA controls the rendering of their non-visual experience. Headings functioning as tabs facilitate easier navigation through the Widget for screen reader users. First class support for keyboard usersUsers can navigate through accordion headings using the up/down arrow keys. They can skip the entire Widget or access its first tab/header directly. State ManagementReloading, bookmarking, or sharing a page preserves the state of the panels. Text selectionAdjacent headings are not selected when users select a heading (tab) and its related content (panel). This is possible because headings are not siblings, unlike headings in a "regular" tablist. This link is here to test keyboard navigation.AdaptiveResponsivenessThe widget transforms into an Accordion when its width cannot accommodate all the tabs. Internationalization (i18n)The widget adjusts to different languages (e.g., "Technischer Support" versus "Tech Support"). The widget adheres to the directionality of the text (tabs will switch direction accordingly). Icon positioning will also respect the script direction. This link is here to test keyboard navigation.Reduced test casesFeatures
Assuming the focus is on the Widget For TabPanel
For Accordion
Browser SupportThis library relies on ResizeObserver but we have a polyfill for browsers that don't support it—as the table below shows.
Notes:
Le CodeThere is no wrapper requirement. Anything may go in between your headings. The script wraps that content inside <div>s that become the "panels". Install"Old School"Download the latest release of tabpanelwidget-x.x.x.zip which includes:
SetupWrap your headings and their relevant content inside a Add a dl itself. Include the stylesheet in the Include this before Or you may choose to load all files from CDN: The above will attach the script to all containers with the class UsageClasses"Out-of-the-box", the Widget will appear as shown in the Demo section but a few classes give you different options. All classes are meant to be applied to the Widget (the wrapper) with the exception of Data- AttributesThese attributes are optional. They are meant to make the widget "bookmark-friendly". This means users will be able to bookmark a page, or share a URL, and have the state of the panels saved at the same time.
"Variables"tabpanelwidget.min.css is the output of tabpanelwidget.scss. The latter contains variables that will let you customize the Widget's tabs, headers, and panels (their color, background, border, border-radius, padding, margin, etc.). The comments in the SCSS file contain a great deal of information; make sure to check them out!. "Vanilla""Vue.js"ReactAngularComing soon! Even sooner if we receive a PR ;) FAQ
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||