=== Ananyoo Accessible Portfolio – Case Studies & Project Showcase ===
Contributors: anblik
Tags: portfolio, case study, accessibility, custom post type, wcag
Requires at least: 6.4
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 1.4.6
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

An accessibility-first portfolio and case-study post type — categories, tags and project details, built to WCAG. No lightboxes, no lock-ins.

== Description ==

**Ananyoo Accessible Portfolio** adds a Portfolio post type built the accessibility-first way: real content in the database, semantic markup, and nothing that traps a keyboard or confuses a screen reader — no lightboxes, no hover-only interactions, no page-builder lock-in.

Developed by Shivaji Mitra (M/S. Anblik).

**Live demo:** [Try the accessible portfolio demo »](https://showcase.ananyoo.com/accessible-portfolio/)

= Why this plugin? =

Most portfolio plugins look impressive and then fail the people who matter: isotope filtering that keyboards cannot reach, lightboxes that trap focus, hover-only overlays that touch and screen-reader users never discover. This plugin makes the accessible result the default — a portfolio added by a non-expert is still usable by keyboard and screen-reader visitors, on the smallest phone, in high-contrast mode.

= Key features =

* **Portfolio post type** — title, editor for the case study, excerpt (used as the short description on listing cards) and featured image.
* **Categories and tags** — hierarchical portfolio categories plus flat portfolio tags, both available to blocks and the REST API.
* **Project details** — client name, completed date, project URL and tools used, shown as an accessible definition list on single views (themes may take over the rendering).
* **Embed anywhere** — an Accessible Portfolio block and an [accessible_portfolio] shortcode sharing one renderer: grid, list or carousel layout, 1–4 columns, item count, category and tag filtering, and per-field toggles.
* **Accessible carousel option** — the carousel layout is powered by the free Ananyoo Accessible Carousel plugin: real button controls, screen-reader announcements, no autoplay, reduced-motion safe. Without it, a grid is shown instead.
* **Zero front-end JavaScript of its own** — semantic list markup, real headings at a configurable level, external links announced to screen readers. Nothing to trap, nothing to time out.
* **Configurable archive** — change the listing slug, or switch the automatic archive off and use your own page (a theme template or the plugin's block) at that address.
* **Your content is safe** — everything is ordinary WordPress content: it survives theme switches, works with any block theme, and is never deleted on uninstall unless you deliberately turn that on. The Ariade theme ships matching templates with a grid/list view toggle.

= Links =

* [Plugin home & documentation](https://ananyoo.com/ananyoo-accessible-portfolio-plugin/)
* [Live demo](https://showcase.ananyoo.com/accessible-portfolio/)
* [More accessibility plugins from Ananyoo](https://ananyoo.com/wordpress-accessibility-plugins/) — further WordPress accessibility plugins are in active development.
* [Support forum](https://wordpress.org/support/plugin/ananyoo-accessible-portfolio/)

= Privacy =

This plugin stores only the portfolio content you create, in your own WordPress database. It collects no visitor data, sets no cookies, makes no external requests and adds no tracking or front-end scripts of its own. Nothing leaves your site.

== Installation ==

1. Upload and activate the plugin.
2. A Portfolio menu appears in wp-admin: add items with a title, the case study in the editor, a short description in the Excerpt field, a featured image, categories, tags, and the project details (client, date, URL, tools).
3. Your listing lives at /portfolio/ (change the slug under Portfolio > Settings). If links 404 after changing the slug, visit Settings > Permalinks once.

== Frequently Asked Questions ==

= Why is the post type slug "portfolio" and not prefixed? =

Interoperability, chosen deliberately: the unprefixed slug is the long-standing convention shared by established portfolio plugins, so content created with them is recognised when you switch to this plugin, and block themes can provide standard archive-portfolio and single-portfolio templates. All code identifiers (functions, options, meta keys) use the anap_ prefix.

= How do I use the shortcode? =

Paste [accessible_portfolio] into any post, page or widget for a 3-column grid of your newest items. Options: layout (grid, list, carousel), columns (1-4), count (1-24), category and tag (slugs), heading_level (2-4), and yes/no field switches: show_image, show_excerpt, show_category, show_tags, show_client, show_date, show_tools, show_url. Example: [accessible_portfolio layout="list" count="4" category="healthcare" show_client="yes" show_date="yes"]. The Accessible Portfolio block offers the same options with a live preview. The full reference with a table of every attribute is on the plugin's About page in your dashboard.

= What do I need for the carousel layout? =

The free Ananyoo Accessible Carousel plugin, by the same author: https://wordpress.org/plugins/ananyoo-accessible-carousel/ — install and activate it, and layout="carousel" comes alive (no autoplay, real button controls, screen-reader announcements, reduced-motion safe). Without it, the shortcode safely shows a grid instead, and editors see a private reminder on the page.

= Does it work with any theme? =

Yes. Singles show an accessible project-details list with every theme; the Ariade theme additionally ships matching archive, taxonomy and single templates with a grid/list view toggle.

= Will uninstalling delete my portfolio items? =

Not by default — your content is kept forever. If you want a clean removal, tick Delete all data on uninstall under Portfolio > Settings first; then deleting the plugin also removes every portfolio item, the portfolio categories and tags, and the plugin settings (media files are never deleted).

== Changelog ==

= 1.4.6 =
* Fixed the portfolio block rendering unstyled in the block editor. The editor preview is drawn by ServerSideRender, which runs the block render callback over the REST API. The wp_enqueue_style call inside that callback was therefore enqueueing into a request that returns only a string of HTML, so the editor page never linked assets/embed.css. Without it the one rule that builds the card grid was missing and the block collapsed into a plain vertical list of links, even though the front end looked correct. The stylesheet is now enqueued on enqueue_block_assets as well, which fires in the editor, so the preview matches the front end. Front-end loading is unchanged and still happens only on pages where the block or the shortcode actually renders.


= 1.4.5 =
* Directory page brought up to the Ananyoo family standard: developer credit, live demo link, Why this plugin, Links and Privacy sections. Plugin URI now points to the dedicated plugin home page.

= 1.4.4 =
* Admin notices from WordPress and other plugins now appear above the plugin settings header instead of inside it (wp-header-end marker added).
* Live demo link on the About page updated.

= 1.4.3 =
* The portfolio post type and both taxonomies now register only when no other plugin has already registered them (post_type_exists / taxonomy_exists guards), making the documented interoperability behaviour explicit and conflict-safe.

= 1.4.2 =
* Renamed to Ananyoo Accessible Portfolio – Case Studies & Project Showcase, putting the Ananyoo brand first for a distinctive name.
* Admin screen styles moved from an inline style tag to assets/admin.css, enqueued with wp_enqueue_style on the plugin settings page only.

= 1.4.1 =
* New setting: Use my own page instead of the automatic archive. Switches off the built-in listing so a page you create can own the archive slug (e.g. a /portfolio/ page using a theme template or the Accessible Portfolio block), while single items keep their addresses under the same slug (/portfolio/my-project/).

= 1.4.0 =
* New: opt-in Delete all data on uninstall setting (off by default, clearly warned). When enabled, uninstalling removes all portfolio items, portfolio categories and tags, and plugin options; media files are never touched. The default remains: your content is never deleted.

= 1.3.1 =
* Documentation: full shortcode and block reference on the About page (attribute table, copy-paste examples) and in the readme FAQ, including the link to the free Ananyoo Accessible Carousel plugin required for the carousel layout.
* When the carousel layout is requested without the Carousel plugin, editors now see a private note on the page explaining what to install (visitors see only the grid fallback).

= 1.3.0 =
* New: carousel layout for the block and shortcode, powered by the Ananyoo Accessible Carousel plugin when it is active (W3C-pattern carousel: real button controls, polite live region, no autoplay, keyboard safe, honours prefers-reduced-motion). Each slide shows the featured image with the title, short description and a View case study link over a solid contrast box. Falls back to the grid layout when the Carousel plugin is absent.

= 1.2.0 =
* New: Accessible Portfolio block (with live preview and inspector controls) and the [accessible_portfolio] shortcode, sharing one server renderer. Layouts: grid (1-4 columns) and list. Filtering by portfolio category and tag slugs. Field selection: image, short description, categories, tags badge, client, completed date, tools and project URL (announced as external). Semantic list markup, headings at a configurable level, zero front-end scripts.

= 1.1.0 =
* Admin redesign matching the Ananyoo plugin family: blue masthead with logo and version pill, Settings and About tabs.
* New About page: credit and documentation links, an honest accessibility statement (what the plugin guarantees by construction, and what the theme is responsible for), theme-integration notes, and versioning information.

= 1.0.3 =
* Added a Settings link on the Plugins list row, opening the Accessible Portfolio settings screen directly.

= 1.0.2 =
* Renamed to Accessible Portfolio – Case Studies & Project Showcase (slug unchanged); the admin menu now reads Accessible Portfolio, matching the Ananyoo plugin family.

= 1.0.1 =
* Branded settings screen (Ananyoo header) and two new options: the project-card button text and link, editable from the dashboard and used by supporting themes such as Ariade. Defaults: Start your audit, linking to /contact/.

= 1.0.0 =
* Initial release: portfolio post type, categories, tags, project-details metabox, settings page, accessible details output.
