{"id":351521,"date":"2026-08-13T12:05:49","date_gmt":"2026-08-13T12:05:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/ananyoo-accessible-events\/"},"modified":"2026-08-18T11:06:14","modified_gmt":"2026-08-18T11:06:14","slug":"ananyoo-accessible-events","status":"publish","type":"plugin","link":"https:\/\/test.wordpress.org\/plugins\/ananyoo-accessible-events\/","author":7479496,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.5.5","stable_tag":"1.5.5","tested":"7.0.4","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"Ananyoo Accessible Events","header_author":"Shivaji Mitra (M\/S. Anblik)","header_description":"A genuinely accessible events plugin: a dedicated Event type with structured details, an accessible add-to-calendar file, event-accommodation info (wheelchair, captions, sign language and more), Schema.org data, an optional enquiry form, and an audited WCAG 2.2 AA front-end and back-end.","assets_banners_color":"f2f4f8","last_updated":"2026-08-18 11:06:14","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/ananyoo.com\/ananyoo-accessible-events-plugin\/","header_author_uri":"https:\/\/ananyoo.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":160,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.2.1":{"tag":"1.2.1","author":"anblik","date":"2026-08-13 12:05:24"},"1.4.10":{"tag":"1.4.10","author":"anblik","date":"2026-08-14 04:32:33"},"1.4.11":{"tag":"1.4.11","author":"anblik","date":"2026-08-14 12:19:45"},"1.4.4":{"tag":"1.4.4","author":"anblik","date":"2026-08-13 12:55:46"},"1.4.5":{"tag":"1.4.5","author":"anblik","date":"2026-08-13 12:55:46"},"1.4.6":{"tag":"1.4.6","author":"anblik","date":"2026-08-13 14:33:21"},"1.4.7":{"tag":"1.4.7","author":"anblik","date":"2026-08-13 14:33:21"},"1.4.8":{"tag":"1.4.8","author":"anblik","date":"2026-08-13 18:26:30"},"1.4.9":{"tag":"1.4.9","author":"anblik","date":"2026-08-14 04:08:38"},"1.5.0":{"tag":"1.5.0","author":"anblik","date":"2026-08-14 12:19:45"},"1.5.3":{"tag":"1.5.3","author":"anblik","date":"2026-08-14 13:44:37"},"1.5.5":{"tag":"1.5.5","author":"anblik","date":"2026-08-18 11:06:14"}},"upgrade_notice":{"1.4.10":"<p>Important: stops plugin deletion from wiping your settings, which was resetting toggles (like the breadcrumb) on every manual delete-and-reinstall update.<\/p>","1.4.9":"<p>Moves the single-event breadcrumb to its proper place above the title (inside the event banner, or handled by the theme&#039;s hero). No settings changes needed.<\/p>","1.4.8":"<p>Polishes the ticket panel: styled local-time pill (shown only to visitors in other timezones) and a border fix on the capacity pill. Visual only.<\/p>","1.4.7":"<p>Redesigns the Event details band as a gradient ticket with visible labels, and polishes the section headings and action buttons. Purely visual; your events, settings and the accessible markup are unchanged.<\/p>","1.4.6":"<p>Centres the &quot;Accessibility at this event&quot; panel in wide theme layouts. CSS-only; no changes to your events or settings.<\/p>","1.4.5":"<p>Fixes event excerpts sweeping in breadcrumb and details text, and corrects the About tab demo link. No changes to your events or settings.<\/p>","1.4.4":"<p>Single events now reuse your theme&#039;s own breadcrumb when the theme provides one (Ariade 1.4.63+); the plugin&#039;s tidy fallback trail remains for every other theme. No changes to your events or settings.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3645204,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3645204,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3645204,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3645204,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.2.1","1.4.10","1.4.11","1.4.4","1.4.5","1.4.6","1.4.7","1.4.8","1.4.9","1.5.0","1.5.3","1.5.5"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3645204,"resolution":"1","location":"assets","locale":"","width":1860,"height":1350},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3645204,"resolution":"2","location":"assets","locale":"","width":1860,"height":1481},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3645204,"resolution":"3","location":"assets","locale":"","width":1860,"height":1481},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3645204,"resolution":"4","location":"assets","locale":"","width":1760,"height":1896},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3647466,"resolution":"5","location":"assets","locale":"","width":1456,"height":830},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3647466,"resolution":"6","location":"assets","locale":"","width":1456,"height":830}},"screenshots":{"1":"The events list in Grid view \u2014 the filter toolbar (category + accessibility), Grid\/List switch, Subscribe button, and cards with the Upcoming\/Past pill, a date tile and accommodation mini-icons.","2":"The events list in List view.","3":"A single event: the \"Event details\" panel with icon tiles, and the \"Accessibility at this event\" panel with a real icon for every accommodation.","4":"The audited admin: the branded Settings screen with per-feature toggles and the Settings \/ About tabs.","5":"The accessible timeline, \"Photo journey\" design \u2014 big rounded photos with the date pill on the photo, woven from blog posts and events with year pills and a no-JavaScript Load more.","6":"The accessible timeline, \"Alternate\" design \u2014 cards left and right of the centre line with year pills and Event\/Blog source tags; one of five built-in designs."}},"plugin_section":[],"plugin_tags":[1953,416,1486,5575,1956],"plugin_category":[34,40,55],"plugin_contributors":[85416],"plugin_business_model":[],"class_list":["post-351521","plugin","type-plugin","status-publish","hentry","plugin_tags-accessibility","plugin_tags-calendar","plugin_tags-events","plugin_tags-timeline","plugin_tags-wcag","plugin_category-accessibility","plugin_category-calendar-and-events","plugin_category-seo-and-marketing","plugin_contributors-anblik","plugin_committers-anblik"],"banners":{"banner":"https:\/\/ps.w.org\/ananyoo-accessible-events\/assets\/banner-772x250.png?rev=3645204","banner_2x":"https:\/\/ps.w.org\/ananyoo-accessible-events\/assets\/banner-1544x500.png?rev=3645204","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/ananyoo-accessible-events\/assets\/icon-128x128.png?rev=3645204","icon_2x":"https:\/\/ps.w.org\/ananyoo-accessible-events\/assets\/icon-256x256.png?rev=3645204","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/ananyoo-accessible-events\/assets\/screenshot-1.png?rev=3645204","caption":"The events list in Grid view \u2014 the filter toolbar (category + accessibility), Grid\/List switch, Subscribe button, and cards with the Upcoming\/Past pill, a date tile and accommodation mini-icons."},{"src":"https:\/\/ps.w.org\/ananyoo-accessible-events\/assets\/screenshot-2.png?rev=3645204","caption":"The events list in List view."},{"src":"https:\/\/ps.w.org\/ananyoo-accessible-events\/assets\/screenshot-3.png?rev=3645204","caption":"A single event: the \"Event details\" panel with icon tiles, and the \"Accessibility at this event\" panel with a real icon for every accommodation."},{"src":"https:\/\/ps.w.org\/ananyoo-accessible-events\/assets\/screenshot-4.png?rev=3645204","caption":"The audited admin: the branded Settings screen with per-feature toggles and the Settings \/ About tabs."},{"src":"https:\/\/ps.w.org\/ananyoo-accessible-events\/assets\/screenshot-5.png?rev=3647466","caption":"The accessible timeline, \"Photo journey\" design \u2014 big rounded photos with the date pill on the photo, woven from blog posts and events with year pills and a no-JavaScript Load more."},{"src":"https:\/\/ps.w.org\/ananyoo-accessible-events\/assets\/screenshot-6.png?rev=3647466","caption":"The accessible timeline, \"Alternate\" design \u2014 cards left and right of the centre line with year pills and Event\/Blog source tags; one of five built-in designs."}],"raw_content":"<!--section=description-->\n<p><strong>Every events page answers two questions: when, and where. For millions of disabled visitors the real question comes first \u2014 \"will this event work for me?\"<\/strong><\/p>\n\n<p><strong>Ananyoo Accessible Events<\/strong> is built around that question. Every event states, right on the page, the accommodations it provides \u2014 wheelchair access, live captions, sign language, a quiet room and more \u2014 each with a clear way to ask for what is missing. Visitors can even filter your events list down to only the events they can truly attend. The listing, the single pages and the admin screens are all audited to WCAG 2.2 Level AA, because an \"accessible\" plugin whose own settings page cannot be used with a keyboard is only half finished.<\/p>\n\n<p>And a community is more than its next event. The <code>[ananevt_timeline]<\/code> shortcode looks backwards as well as forwards: it weaves the blog posts and events you already have into one flowing, accessible timeline \u2014 year by year, photo by photo \u2014 the story of your organisation, telling itself. Five designs, your colours, a \"Load more\" that needs no JavaScript, and not a single extra post type to maintain.<\/p>\n\n<p>Developed by Shivaji Mitra (M\/S. Anblik) \u2014 an accessibility consultant who builds with the screen reader switched on.<\/p>\n\n<p><strong>Live demos:<\/strong> <a href=\"https:\/\/showcase.ananyoo.com\/accessible-events\/\">Accessible events \u00bb<\/a> \u00b7 <a href=\"https:\/\/showcase.ananyoo.com\/accessible-events\/timeline\/\">Accessible timeline \u2014 all five designs \u00bb<\/a><\/p>\n\n<h4>Why this plugin?<\/h4>\n\n<p>Most events plugins treat accessibility as a checkbox at the end of the project: an unlabelled calendar icon here, a date picker no keyboard can reach there \u2014 and nowhere at all to tell a Deaf attendee whether the talk will have captions. This plugin is built the other way round. Accessibility is not a feature of the product; it is the product. Attendees see exactly what each event provides before they register. Organisers manage it in an admin audited to the same standard. Search engines read the same structured facts through Schema.org. Everyone gets the full picture \u2014 on the smallest phone, in high-contrast mode, by keyboard, by screen reader.<\/p>\n\n<h4>Key features<\/h4>\n\n<ul>\n<li><strong>A dedicated Event type<\/strong> \u2014 its own menu, list and <code>\/events\/<\/code> links, cleanly separated from your blog. The type lives in the plugin, not a theme, so your events survive any theme change.<\/li>\n<li><strong>\"Accessibility at this event\" \u2014 the standout feature<\/strong> \u2014 tick what an event provides: wheelchair access, step-free entry, live captions \/ CART, sign-language interpretation, audio description, assistive listening, a quiet room, accessible parking, materials in accessible formats. Each shows with its own icon and a clear \"how to request an accommodation\" note. No other mainstream events plugin does this.<\/li>\n<li><strong>Filter events by accommodation<\/strong> \u2014 visitors who need captions or a wheelchair-accessible venue can filter the list to only the events that provide it.<\/li>\n<li><strong>Structured details, entered accessibly<\/strong> \u2014 start \/ end date and time, time-zone label, mode (In person \/ Online \/ Hybrid), venue, address, register link with your own button text, price, capacity and speaker \u2014 all in a labelled meta box with native date and time inputs.<\/li>\n<li><strong>Accessible \"Add to calendar\" and Subscribe<\/strong> \u2014 a properly labelled <code>.ics<\/code> download for each event, plus a Subscribe button that keeps all your events up to date in a visitor's own calendar app via a live feed.<\/li>\n<li><strong>Visitor local time<\/strong> \u2014 online events can show the start time in each visitor's own timezone automatically (progressive enhancement; the site time always remains).<\/li>\n<li><strong>Machine-readable dates<\/strong> \u2014 real <code>&lt;time datetime&gt;<\/code> markup and Schema.org Event structured data, so both screen readers and search engines understand your events.<\/li>\n<li><strong>A real listing<\/strong> \u2014 the <code>[ananevt_events]<\/code> shortcode: one paginated list with Upcoming\/Past status pills, a date tile and accommodation mini-icons on every card, category and accessibility filters, and an accessible Grid\/List view switch. A <code>heading<\/code> attribute keeps your page's heading order sequential.<\/li>\n<li><strong>An accessible timeline \u2014 tell your story<\/strong> \u2014 the <code>[ananevt_timeline]<\/code> shortcode draws your existing blog posts and\/or events as one elegant vertical timeline, newest first, with year pills on the line and a small Event\/Blog tag on each entry. Five built-in designs (Spine, Alternate, Compact ledger, Photo journey, Feature rows), featured images on or off, hand-picked entries with <code>ids=\"\"<\/code>, a category filter, and a \"Load more\" that works without JavaScript. Change every colour from Settings \u2014 the defaults are WCAG-AA out of the box. Perfect for an \"Our Journey\" page that updates itself.<\/li>\n<li><strong>Optional enquiry form<\/strong> \u2014 paste any form shortcode onto your events; pairs naturally with Ananyoo Accessible Forms. A single event can override the site-wide form. Off by default.<\/li>\n<li><strong>An audited admin<\/strong> \u2014 the meta boxes, settings tabs and events list meet the same WCAG 2.2 AA standard, with an ARIA live-region announcement when you filter.<\/li>\n<li><strong>You stay in control<\/strong> \u2014 every behaviour is a simple on\/off toggle.<\/li>\n<\/ul>\n\n<h4>Links<\/h4>\n\n<ul>\n<li><a href=\"https:\/\/ananyoo.com\/ananyoo-accessible-events-plugin\/\">Plugin home &amp; documentation<\/a><\/li>\n<li><a href=\"https:\/\/showcase.ananyoo.com\/accessible-events\/\">Live demo \u2014 accessible events<\/a><\/li>\n<li><a href=\"https:\/\/showcase.ananyoo.com\/accessible-events\/timeline\/\">Live demo \u2014 the accessible timeline, all five designs<\/a><\/li>\n<li><a href=\"https:\/\/ananyoo.com\/wordpress-accessibility-plugins\/\">More accessibility plugins from Ananyoo<\/a> \u2014 further WordPress accessibility plugins are in active development.<\/li>\n<li><a href=\"https:\/\/ananyoo.com\/contact-us\/\">Support &amp; contact<\/a><\/li>\n<\/ul>\n\n<h4>Privacy<\/h4>\n\n<p>This plugin stores only the event content you create, in your own WordPress database. It collects no visitor data, sets no cookies, makes no external requests and adds no tracking. The only front-end scripts are the optional Grid\/List view switch and the optional local-time display \u2014 both run entirely in the visitor's browser and send nothing anywhere. Nothing leaves your site.<\/p>\n\n<h3>Accessibility<\/h3>\n\n<p>Conforms to WCAG 2.2 Level AA. Verified with automated tooling (axe-core: 0 violations across WCAG 2.0 \/ 2.1 \/ 2.2 A &amp; AA) on both the front-end output and the admin screens, plus a manual review:<\/p>\n\n<ul>\n<li>Semantic structure \u2014 a description list inside a labelled region, real sections and a logical heading order (SC 1.3.1, 2.4.6).<\/li>\n<li>Contrast \u2014 every text pair meets 4.5:1; focus rings and borders meet 3:1 (SC 1.4.3, 1.4.11). Status is stated in words, never colour alone (SC 1.4.1).<\/li>\n<li>Keyboard &amp; focus \u2014 native, keyboard-operable controls with a visible 3px focus indicator; targets at least 44px (SC 2.1.1, 2.4.7, 2.4.11, 2.5.8).<\/li>\n<li>Clear links \u2014 the register and calendar controls name the event and say what they do (SC 2.4.4).<\/li>\n<li>Reduced motion and Windows High Contrast \/ forced-colors supported (SC 2.3.3).<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>Go to <strong>Accessible Events \u2192 Add New<\/strong>, fill in the event details and tick the accommodations it provides.<\/li>\n<li>Create a page (for example \"Events\") and add the shortcode <code>[ananevt_events]<\/code> to list them (Upcoming first, then Past).<\/li>\n<li>For an \"Our Journey\" style page, add <code>[ananevt_timeline]<\/code> anywhere \u2014 it weaves your blog posts and events into one accessible timeline automatically.<\/li>\n<li>Visit <strong>Accessible Events \u2192 Settings<\/strong> to choose what appears, pick your timeline design and colours, and decide how events behave.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20the%20accessibility%20apply%20to%20the%20admin%20too%3F\"><h3>Does the accessibility apply to the admin too?<\/h3><\/dt>\n<dd><p>Yes. The meta boxes, the Settings and About tabs, and the events list are all built to the same WCAG 2.2 AA standard \u2014 labelled controls, visible focus, sufficient contrast, and an ARIA live-region announcement when you filter Upcoming \/ Past.<\/p><\/dd>\n<dt id=\"how%20do%20i%20add%20a%20contact%20form%20to%20my%20events%3F\"><h3>How do I add a contact form to my events?<\/h3><\/dt>\n<dd><p>In Accessible Events \u2192 Settings, switch on \"Show an enquiry form on every event\" and paste a form shortcode. For a matching accessible form, use Ananyoo Accessible Forms. A single event can also have its own form in the \"Enquiry form\" box on the event editor.<\/p><\/dd>\n<dt id=\"how%20do%20i%20make%20a%20timeline%20of%20my%20posts%20and%20events%3F\"><h3>How do I make a timeline of my posts and events?<\/h3><\/dt>\n<dd><p>Add <code>[ananevt_timeline]<\/code> to any page. By default it mixes your events and blog posts newest first; narrow it with <code>source=\"posts\"<\/code> or <code>source=\"events\"<\/code>, a <code>category=\"slug\"<\/code>, or hand-picked <code>ids=\"12,34,56\"<\/code>. Choose one of the five designs in Settings (or per page with <code>design=\"journey\"<\/code> and friends), switch featured images off with <code>images=\"no\"<\/code>, and set your own colours in Settings \u2014 every empty colour field keeps the accessible default. There is no separate \"story\" post type: the timeline always reflects your real content.<\/p><\/dd>\n<dt id=\"will%20my%20events%20break%20if%20i%20change%20theme%3F\"><h3>Will my events break if I change theme?<\/h3><\/dt>\n<dd><p>No. Events and their data live in the plugin, so they are theme-independent.<\/p><\/dd>\n<dt id=\"where%20do%20events%20appear%3F\"><h3>Where do events appear?<\/h3><\/dt>\n<dd><p>Single events at <code>\/events\/your-event\/<\/code>, and wherever you place the <code>[ananevt_events]<\/code> shortcode. The shortcode splits Upcoming and Past automatically, sorted by date.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.5.5<\/h4>\n\n<ul>\n<li>Timeline buttons \u2014 modern hover. \"Read more\" and \"Load more\" now invert on hover and keyboard focus (the accent fill and text colours swap) with a soft shadow lift, in place of the old plain underline. It reads the same colour variables, so contrast is preserved and each site gets its own two-colour flip; <code>prefers-reduced-motion<\/code> is honoured.<\/li>\n<li>Timeline <code>[ananevt_timeline]<\/code> gains an <code>excerpt<\/code> attribute \u2014 the number of words in each entry summary (default 28; <code>excerpt=\"0\"<\/code> hides the summaries entirely). Example: <code>[ananevt_timeline excerpt=\"20\"]<\/code>.<\/li>\n<\/ul>\n\n<h4>1.5.4<\/h4>\n\n<ul>\n<li>Timeline date badge now exposes its parts as sub-spans \u2014 <code>&lt;span class=\"antl__dm\"&gt;<\/code> (day and month) and <code>&lt;span class=\"antl__yr\"&gt;<\/code> (year) inside <code>.antl__date<\/code>. The default inline rendering is unchanged (\"20 Jun 2026\"), but a theme can now restyle the badge \u2014 for example a round year-over-date pill on the spine \u2014 with pure CSS, no JavaScript. Multi-day event ranges are preserved in the day-month span.<\/li>\n<\/ul>\n\n<h4>1.5.3<\/h4>\n\n<ul>\n<li>Timeline \"Alternate\" design: cards now truly alternate left, right, left, right. The sides were decided by CSS nth-of-type, which also counted the year pills between entries - on a timeline spanning many years that pushed runs of cards to one side. Each entry now carries an explicit odd\/even class from PHP, so the rhythm is never disturbed. The same fix applies to the photo-side alternation in \"Feature rows\".<\/li>\n<\/ul>\n\n<h4>1.5.2<\/h4>\n\n<ul>\n<li>Added direct links to the new live timeline demo (all five designs) - on the plugin directory page and on the About tab - alongside the existing events demo link. Text-only change.<\/li>\n<\/ul>\n\n<h4>1.5.1<\/h4>\n\n<ul>\n<li>Timeline \"Feature rows\" design: the photo is now a tidy fixed-ratio (4:3) thumbnail beside the story instead of stretching to the full card height - the old rule could blow the image up into a tall, blurry smear when the text column was long. Rounded corners and comfortable padding; single-column with a wide ratio on phones. CSS-only fix.<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>NEW: the [ananevt_timeline] shortcode - an accessible vertical timeline built from your EXISTING blog posts and\/or events, mixed in date order. No separate \"story\" post type to maintain. Attributes: source=\"both|events|posts\", category=\"slug\", ids=\"12,34,56\" (hand-picked), design=\"spine|alternate|compact|journey|rows\", images=\"yes|no\", order=\"new|old\", per_page, paginate, limit, year_labels, source_tag, heading (2-6), readmore=\"...\".<\/li>\n<li>Five design presets ship built in: Spine (one-side cards, the default), Alternate (cards left\/right of a centre line), Compact ledger (dates on the left), Photo journey (big photos with the date pill on the photo) and Feature rows (magazine split cards). Year pills mark the line; each entry can show its Event\/Blog source tag.<\/li>\n<li>New Timeline section in Settings: default design, Read-more text, open-in-new-tab (announced to screen readers), and nine colour overrides (line, year pill, date tag, card, title, Read-more button) applied through CSS custom properties - leave any field empty to keep the accessible default.<\/li>\n<li>\"Load more\" works without JavaScript: a plain link that keeps every earlier entry on the page and moves focus context to the first newly loaded entry.<\/li>\n<li>Accessibility: semantic ordered list, one heading level for every entry (configurable), visible focus rings, lazy-loaded images, no animations (nothing to disable for reduced motion), forced-colors\/High Contrast support, AA-checked default colours.<\/li>\n<li>The timeline stylesheet loads only on pages that use the shortcode.<\/li>\n<\/ul>\n\n<h4>1.4.11<\/h4>\n\n<ul>\n<li>Date ranges are now compact and easier to read. A range inside one month shows as \"12 - 16 October 2024\" instead of repeating the month and year on both sides; a range inside one year shows as \"28 September - 2 October 2024\". Only a range crossing a year boundary keeps the full form on both sides. Applies everywhere the plugin prints a date range - the event details band and list rows - with month names still fully translatable. Sites that prefer the old full form can restore it with a one-line filter: add_filter( 'ananevt_compact_date_range', '__return_false' );<\/li>\n<\/ul>\n\n<h4>1.4.10<\/h4>\n\n<ul>\n<li>Fixed: deleting the plugin no longer wipes its settings. Uninstall used to remove the settings row, so the common manual-update routine (delete the plugin, then install the new zip) silently reset every toggle \u2014 including the breadcrumb trail \u2014 back to defaults on each update. Settings, events and their content are now all kept.<\/li>\n<\/ul>\n\n<h4>1.4.9<\/h4>\n\n<ul>\n<li>The breadcrumb trail now sits where every other page shows it \u2014 above the title. When a theme uses the <code>[ananevt_event_banner]<\/code> shortcode, the trail renders inside the banner above the event title; when the active theme places its own trail above the hero title for events (Ariade 1.4.67+ with the Events breadcrumb toggle on), the plugin steps aside entirely. The top-of-content placement remains only as the fallback for themes that provide neither, and the trail never appears twice.<\/li>\n<\/ul>\n\n<h4>1.4.8<\/h4>\n\n<ul>\n<li>The visitor local-time note is now a neatly styled pill inside the ticket panel instead of a bare text line, and it no longer appears for visitors who are already in the event's own timezone \u2014 it only shows when it genuinely adds information.<\/li>\n<li>Fixed the capacity pill in the Event details ticket losing its bottom border (the last-row divider rule was trimming the pill's outline).<\/li>\n<\/ul>\n\n<h4>1.4.7<\/h4>\n\n<ul>\n<li>Redesigned the \"Event details\" band as a gradient ticket: a tear-off date stub with the day numbers and a perforated edge, labelled rows (the When \/ Where \/ Speaker labels that were always there for screen readers are now visible for everyone), and the price and capacity chips restyled as outline pills. Same accessible markup and  element throughout.<\/li>\n<li>Section headings (\"About this event\", \"What to expect\") now carry a small decorative gradient bar, and the register \/ add-to-calendar buttons are restyled as pills with a gradient primary. Focus rings, 44px targets and forced-colors support unchanged.<\/li>\n<\/ul>\n\n<h4>1.4.6<\/h4>\n\n<ul>\n<li>Fixed: the \"Accessibility at this event\" panel now centres itself inside wide or constrained theme content areas instead of sitting against the left edge. One-line CSS change (auto side margins); no markup or behaviour changes.<\/li>\n<\/ul>\n\n<h4>1.4.5<\/h4>\n\n<ul>\n<li>Fixed: automatic excerpts no longer pick up the injected breadcrumb, event header and panel text. For events without a manual excerpt, the summary shown in banners, archives and SEO descriptions is now generated from the clean event description only.<\/li>\n<li>Fixed: the About tab's \"Live demo of this plugin\" link now points to the plugin's live demo page.<\/li>\n<\/ul>\n\n<h4>1.4.4<\/h4>\n\n<ul>\n<li>Breadcrumb: single events now use the active theme's own breadcrumb when it provides one. Ariade 1.4.63+ renders a semantic, accessible <\/li>\n<\/ul>\n\n<p>&lt;<\/p>\n\n<p>ol&gt; trail from Rank Math's data and handles the section-listing step, the current-title de-duplication and the styling \u2014 so an event's trail is now identical to every other page on the site. The plugin's own tidy trail remains the fallback for other themes.<\/p>\n\n<h4>1.4.3<\/h4>\n\n<ul>\n<li>Breadcrumb: fixed the divider showing twice (\"\/\/\") between crumbs. Rank Math wraps the separator in its own , so passing a separator that also carried the \"separator\" class produced two nested .separator spans and the theme painted the divider on both. The glyph is now a neutral aria-hidden span, so exactly one divider renders. Decorative-only, still hidden from assistive technology.<\/li>\n<\/ul>\n\n<h4>1.4.2<\/h4>\n\n<ul>\n<li>New option: \"Show a breadcrumb trail on single events\" (off by default). When on, each event gets a \"Home \u203a Section \u203a Event\" breadcrumb above its details, matching your theme. Because events use the plugin's own banner instead of the theme's title block, a theme breadcrumb attached to that title never appears on events \u2014 this fills that gap.<\/li>\n<li>Breadcrumbs are powered by the Rank Math SEO plugin (with its Breadcrumbs function enabled). The Settings screen now tells you, right beside the option, whether Rank Math breadcrumbs are ready and how to enable them. Without Rank Math nothing is shown \u2014 no error.<\/li>\n<li>The trail adopts the active theme's breadcrumb styling where available (e.g. the Ariade theme's .ariade-breadcrumb look) and ships a tidy fallback style of its own for any other theme.<\/li>\n<\/ul>\n\n<h4>1.4.1<\/h4>\n\n<ul>\n<li>Review: the remaining short data identifiers now use the plugin's unique <code>ananevt<\/code> prefix, so they cannot collide with any other plugin \u2014 the event post type <code>aae_event<\/code> is now <code>ananevt_event<\/code>, the category taxonomy <code>aae_event_cat<\/code> is now <code>ananevt_event_cat<\/code>, and every custom field meta key <code>_ae_*<\/code> is now <code>_ananevt_*<\/code>.<\/li>\n<li>Added a safe, automatic, one-time migration that relabels your existing events, their categories and all their saved details from the old identifiers to the new ones on update. It is non-destructive (it only renames rows, never deletes or duplicates data), idempotent (safe to re-run), and preserves every event exactly as it was \u2014 including permalinks, since the <code>\/events\/<\/code> slug is unchanged.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Review: gave every function, class, constant, option, shortcode and script handle a unique <code>ananevt<\/code> prefix (previously the short <code>aae<\/code> \/ <code>AAE<\/code>), so the plugin cannot collide with other plugins or themes. The listing shortcode is now <code>[ananevt_events]<\/code> and the banner shortcode <code>[ananevt_event_banner]<\/code>. Existing events are unaffected \u2014 the event post type, its category taxonomy and all saved event data are kept exactly as before, so nothing is lost on update.<\/li>\n<li>Review: the enquiry-form output injected into the event content is now passed through <code>wp_kses()<\/code> with a form-aware allow-list before being returned to the <code>the_content<\/code> filter, so all rendered markup is escaped while the form fields and their accessibility attributes are preserved.<\/li>\n<\/ul>\n\n<h4>1.3.4<\/h4>\n\n<ul>\n<li>\"What to expect\" list items now inherit the surrounding text size instead of being fixed at 1rem, so they match the body copy of whatever theme they sit in.<\/li>\n<li>Each event-details meta item now carries its label (When\/Where\/Organiser\/\u2026) as a real element (.ae-ehead__lab, screen-reader-only by default) plus a per-type class (.ae-ehead__chip--when etc.), so themes can build a labelled-columns layout. Default appearance is unchanged.<\/li>\n<\/ul>\n\n<h4>1.3.3<\/h4>\n\n<ul>\n<li>The \"rows\" list layout can now be paired with the Grid\/List view switch (view=\"rows\" view_switch=\"yes\"). List shows the full-width rows; Grid reflows the same rows into a card grid via a CSS layout class on the wrapper \u2014 same markup, same styling, no re-fetch, works without JavaScript falling back to the List. Card grid\/list views are unchanged.<\/li>\n<\/ul>\n\n<h4>1.3.2<\/h4>\n\n<ul>\n<li>The single-event banner ([ananevt_event_banner]) now shows one title line \u2014 the subtitle when set, otherwise the post title \u2014 instead of both, so the banner stays compact (useful when the title is in a tall script and the subtitle is its shorter translation). The details header below is unchanged.<\/li>\n<\/ul>\n\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>New <code>[ananevt_event_banner]<\/code> shortcode: outputs a single event's source tag, title, subtitle and excerpt, for use inside a theme's own title banner \u2014 so a site can give events the same header band as its other pages instead of the default single-post header. When this banner is used, the details header below it no longer repeats the subtitle.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>New \"Rows\" list layout: <code>[ananevt_events view=\"rows\"]<\/code> renders full-width rows with a month\/year date badge, a two-line title (title + the new Subtitle field), a compact when\/where line, a short description and a \"Know more\" button \u2014 great for a bilingual or editorial events list.<\/li>\n<li>New source tag on the Rows layout, showing where each entry comes from (for example \" Event\" or \" Blog\"). On by default with a new Settings toggle, and per-listing overridable with <code>source_tag=\"no\"<\/code>. The <code>ananevt_source_label<\/code> filter lets a theme rebrand or shorten it.<\/li>\n<li>New event fields: Subtitle (a second title line), Organiser, Organiser email (shown as a mailto link) and a \"What to expect\" list.<\/li>\n<li>Redesigned single-event layout: a header band with the date badge, subtitle and a when \/ where \/ organiser \/ email meta row; an \"About this event\" heading; and a bulleted \"What to expect\" section after the description. Every icon still carries a visible label \u2014 meaning never rests on colour or an icon alone.<\/li>\n<li>All new screens keep the audited WCAG 2.2 AA contrast, 44px targets, visible focus and forced-colors support.<\/li>\n<\/ul>\n\n<h4>1.2.5<\/h4>\n\n<ul>\n<li>New <code>subscribe<\/code> attribute on the [ananevt_events] shortcode \u2014 hide the Subscribe button on one listing (e.g. a compact home-page section) while keeping it on your main events page.<\/li>\n<\/ul>\n\n<h4>1.2.4<\/h4>\n\n<ul>\n<li>New <code>limit<\/code> attribute on the [ananevt_events] shortcode \u2014 cap the list to the first N events, e.g. <code>[ananevt_events show=\"upcoming\" limit=\"3\" paginate=\"no\"]<\/code> for a \"next three events\" section on a home page.<\/li>\n<\/ul>\n\n<h4>1.2.3<\/h4>\n\n<ul>\n<li>The Plugin URI now points to the plugin's own documentation page (it previously matched the Author URI, which the wordpress.org submission form does not allow). No functional change.<\/li>\n<\/ul>\n\n<h4>1.2.2<\/h4>\n\n<ul>\n<li>The About tab now carries a Credit &amp; documentation section with links to the plugin documentation, the live demo and the full Ananyoo plugin family \u2014 matching the other Ananyoo plugins.<\/li>\n<li>Readme restructured with Why this plugin?, Key features, Links and Privacy sections, and links to the plugin home page and live demo. No functional change.<\/li>\n<\/ul>\n\n<h4>1.2.1<\/h4>\n\n<ul>\n<li>Fixed the heading order on listing pages (flagged by axe DevTools and Lighthouse): card titles were h3, which skipped a level under a page's h1 title. Card titles are now h2 by default, and a new <code>heading<\/code> attribute lets you match any page structure \u2014 for example <code>[ananevt_events heading=\"3\"]<\/code> when the list sits under an h2.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Redesigned the single-event page: the Event details panel now shows each detail beside its own icon tile (calendar, place, speaker, price, capacity), and the \"Accessibility at this event\" panel has a branded header and a real icon for every accommodation \u2014 wheelchair, captions, sign language, audio description, hearing loop, quiet room, parking, step-free access and accessible materials \u2014 instead of tick marks. The \"how to request an accommodation\" note is now a clear call-out.<\/li>\n<li>Redesigned the events listing: the filters sit in a toolbar card with labelled Category and Accessibility dropdowns, a \"Showing 1\u201310 of 14 events\" count line appears above the cards, and each card gains a date tile on the image plus a row of accommodation mini-icons (with screen-reader labels), so visitors can see captions or wheelchair access before opening an event.<\/li>\n<li>All icons are decorative SVGs with the label always in text \u2014 nothing is conveyed by the icon alone.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>New: filter the events list by accessibility accommodation (captions, sign language, wheelchair access and more) \u2014 a filter no other events plugin offers.<\/li>\n<li>New: show each event time in the visitor's own timezone (great for global online events).<\/li>\n<li>New: a \"Subscribe\" button that adds all your events to a visitor's calendar app via a live .ics feed, kept up to date automatically.<\/li>\n<\/ul>\n\n<h4>1.0.11<\/h4>\n\n<ul>\n<li>Fixed the Upcoming\/Past and category pills sitting tight against their text: the pills inherited the image wrapper's zero line-height, which collapsed their vertical padding. They now have proper breathing room.<\/li>\n<\/ul>\n\n<h4>1.0.10<\/h4>\n\n<ul>\n<li>Refined the event cards (Template A): roomier Upcoming\/Past pills, a one-line date with a calendar icon, a location line with a pin icon, and a solid \"View details\" button. Grid cards bottom-align their buttons; List view reflows to image-left.<\/li>\n<\/ul>\n\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>Redesigned the [ananevt_events] listing as a single, paginated list (10 per page) instead of separate Upcoming\/Past sections; each card now shows its status as an Upcoming\/Past pill on the image, with a cleaner card design (Grid = image on top, List = image on the left).<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Documentation: readme updated for the current menu name (Accessible Events), the Settings\/About tabs, and the listing category filter, Grid\/List and pagination. No functional change.<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Past-events pagination now shows 10 per page by default, matching the blog and portfolio.<\/li>\n<\/ul>\n\n<h4>1.0.6<\/h4>\n\n<ul>\n<li>Added an Event Categories taxonomy, and gave the [ananevt_events] listing a category filter, an accessible Grid\/List view switch and pagination for past events \u2014 matching the Ananyoo plugin family.<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Reworded the comments option as a plain \"Do you want comments enabled on events?\" toggle, and made it control event comments directly (on = enabled, off = disabled). Events are an independent post type, so this no longer depends on blog settings.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Matched the admin header to the Ananyoo plugin family: the exact brand blue (#2643c9) and the real Ananyoo logo.<\/li>\n<li>Fixed admin notices appearing inside the header \u2014 they now sit above it (added the standard wp-header-end marker).<\/li>\n<li>The header description now runs the full width of the banner.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Header restyled to the Ananyoo blue to match the other plugins.<\/li>\n<li>Passed Plugin Check: removed the unused Domain Path header, corrected two input-sanitize annotations, and trimmed the short description to 150 characters.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Redesigned the admin: a branded header with the plugin name and version, and Settings \/ About now shown as tabs on one page (About moved out of its own menu item).<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>The admin menu now reads \"Accessible Events\" (with a calendar icon) so it is easy to find and does not clash with other events tools.<\/li>\n<li>Added \"Settings\" and \"About\" quick links on the Plugins list row.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: Event post type with structured details; \"Accessibility at this event\" accommodations; accessible add-to-calendar (.ics); Schema.org Event data and <code>&lt;time&gt;<\/code> markup; <code>[ananevt_events]<\/code> Upcoming \/ Past listing; optional per-site and per-event enquiry form; professional, WCAG-audited Dashboard, Settings and events list with an ARIA live-region filter.<\/li>\n<\/ul>","raw_excerpt":"Accessibility-first events: Event type, accommodation info, add-to-calendar, Schema.org, and an accessible timeline of your posts and events.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/351521","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=351521"}],"author":[{"embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/anblik"}],"wp:attachment":[{"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=351521"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=351521"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=351521"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=351521"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=351521"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/test.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=351521"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}