Semantic controls
Tabs are buttons, accordion triggers are buttons, and panels are labelled by their controls.
Documentation and review guide
A TinyMCE plugin that helps course builders insert accessible accordions and responsive tabs directly into Moodle content.
Live demo
Use the viewport buttons and breakpoint slider to see how responsive tabs switch into an accordion layout when space is limited.
Current layout: tabs at 720px breakpoint.
Accessibility
The plugin follows accessible disclosure and tabs patterns, while keeping generated IDs unique so multiple components can appear on the same Moodle page.
Tabs are buttons, accordion triggers are buttons, and panels are labelled by their controls.
Arrow keys, Home, and End help learners move across tabs and accordion headings.
The saved content remains readable HTML, then the runtime adds ARIA state and interactions.
Responsive behavior
Responsive tabs default to a 720px breakpoint. Course builders can select a tabs component in TinyMCE and choose a different breakpoint when there are many tab labels.
Tip: use a higher breakpoint for five or more tabs, long labels, or pages with narrow content columns.
Editor workflow
The plugin adds an Accordion tabs menu to TinyMCE. Course builders can insert responsive tabs or accordion-only content, then choose from one to ten items.
Custom styling
The component inherits the LMS font by default. Site administrators can add scoped CSS in the plugin settings when the component needs to match a local design system.
.tiny-adaptivetabs {
--tiny-adaptivetabs-accent: #005eb8;
--tiny-adaptivetabs-accent-strong: #003f7d;
--tiny-adaptivetabs-line: #c8d2dc;
}
.tiny-adaptivetabs__accordion-button {
font-weight: 600;
}
Compatibility
Adaptive Tabs saves standard HTML and enhances it with a small frontend runtime, so it works with most content filters, embedded media, and plugin output.
Install
Install the plugin folder in Moodle, run upgrade, then purge caches so new AMD files and hooks are loaded.
lib/editor/tiny/plugins/adaptivetabs
php admin/cli/upgrade.php
php admin/cli/purge_caches.php