{"id":386209,"date":"2026-10-18T21:41:22","date_gmt":"2026-10-18T21:41:22","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/accessible-forms-by-accessible-org\/"},"modified":"2026-10-19T13:07:12","modified_gmt":"2026-10-19T13:07:12","slug":"accessible-forms-by-accessible-org","status":"publish","type":"plugin","link":"https:\/\/bre.wordpress.org\/plugins\/accessible-forms-by-accessible-org\/","author":23582318,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.4.1","stable_tag":"1.4.1","tested":"7.1.3","requires":"6.4","requires_php":"8.1","requires_plugins":null,"header_name":"Accessible Forms by Accessible.org","header_author":"Accessible.org","header_description":"Create accessible contact forms with visible labels, clear validation, email notifications, and entry management.","assets_banners_color":"9698a8","last_updated":"2026-10-19 13:07:12","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/accessible.org\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":69,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.3.2":{"tag":"1.3.2","author":"accessibledotorg","date":"2026-10-18 21:41:02","revision":3753655},"1.4.0":{"tag":"1.4.0","author":"accessibledotorg","date":"2026-10-18 23:39:25","revision":3753708},"1.4.1":{"tag":"1.4.1","author":"accessibledotorg","date":"2026-10-19 13:07:12","revision":3754796}},"upgrade_notice":{"1.4.1":"<p>Fixes delayed editor layout changes and off-center review checkmarks, improves early stylesheet loading, and preserves native editing and accessibility safeguards. Existing forms, entries and settings are retained. No database migration is required.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3753663,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3753663,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3753663,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3753663,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3753663,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"accessible-forms\/form":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"accessible-forms\/form","version":"1.4.1","title":"Accessible Form","category":"widgets","icon":"feedback","description":"Add a published contact form with accessible labels, validation, and a checked color theme.","keywords":["contact","enquiry","accessible"],"textdomain":"accessible-forms-by-accessible-org","attributes":{"formId":{"type":"number","default":0}},"supports":{"html":false,"customClassName":false,"align":["wide","full"]},"editorScript":"accessible-forms-block","editorStyle":"accessible-forms-block-editor","viewScript":"accessible-forms"}},"tagged_versions":["1.3.2","1.4.0","1.4.1"],"block_files":[],"assets_screenshots":{"screenshot-1.jpg":{"filename":"screenshot-1.jpg","revision":3753708,"resolution":"1","location":"assets","locale":"","width":1440,"height":1080},"screenshot-2.jpg":{"filename":"screenshot-2.jpg","revision":3753708,"resolution":"2","location":"assets","locale":"","width":1440,"height":1200},"screenshot-3.jpg":{"filename":"screenshot-3.jpg","revision":3753708,"resolution":"3","location":"assets","locale":"","width":1440,"height":1080},"screenshot-4.jpg":{"filename":"screenshot-4.jpg","revision":3753708,"resolution":"4","location":"assets","locale":"","width":1440,"height":1080},"screenshot-5.jpg":{"filename":"screenshot-5.jpg","revision":3753708,"resolution":"5","location":"assets","locale":"","width":1440,"height":1080},"screenshot-6.jpg":{"filename":"screenshot-6.jpg","revision":3753708,"resolution":"6","location":"assets","locale":"","width":1440,"height":1320},"screenshot-7.jpg":{"filename":"screenshot-7.jpg","revision":3753708,"resolution":"7","location":"assets","locale":"","width":1440,"height":1080},"screenshot-8.jpg":{"filename":"screenshot-8.jpg","revision":3753708,"resolution":"8","location":"assets","locale":"","width":1440,"height":1080}},"screenshots":{"1":"Build a form with clear field labels, keyboard reordering and the simplified editor navigation.","2":"Choose a contrast-checked theme and inspect the Normal, Focus and Error previews in Style.","3":"Configure Email &amp; confirmation, insert an answer into the subject and preview a sample notification.","4":"Review the saved configuration, check for blocking problems and complete the required author review before publishing.","5":"Place a published form on a page or post, or use the block and shortcode instructions.","6":"Help visitors correct their answers with a linked error summary and clear field-level messages.","7":"Review Entries using readable status views, search and filters.","8":"Choose a named retention policy and review data-deletion settings under Privacy."}},"plugin_section":[],"plugin_tags":[1953,358,2253,601,1956],"plugin_category":[34,42],"plugin_contributors":[287421],"plugin_business_model":[],"class_list":["post-386209","plugin","type-plugin","status-publish","hentry","plugin_tags-accessibility","plugin_tags-contact-form","plugin_tags-form-builder","plugin_tags-forms","plugin_tags-wcag","plugin_category-accessibility","plugin_category-contact-forms","plugin_contributors-accessibledotorg","plugin_committers-accessibledotorg"],"banners":{"banner":"https:\/\/ps.w.org\/accessible-forms-by-accessible-org\/assets\/banner-772x250.png?rev=3753663","banner_2x":"https:\/\/ps.w.org\/accessible-forms-by-accessible-org\/assets\/banner-1544x500.png?rev=3753663","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/accessible-forms-by-accessible-org\/assets\/icon.svg?rev=3753663","icon":"https:\/\/ps.w.org\/accessible-forms-by-accessible-org\/assets\/icon.svg?rev=3753663","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/accessible-forms-by-accessible-org\/assets\/screenshot-1.jpg?rev=3753708","caption":"Build a form with clear field labels, keyboard reordering and the simplified editor navigation."},{"src":"https:\/\/ps.w.org\/accessible-forms-by-accessible-org\/assets\/screenshot-2.jpg?rev=3753708","caption":"Choose a contrast-checked theme and inspect the Normal, Focus and Error previews in Style."},{"src":"https:\/\/ps.w.org\/accessible-forms-by-accessible-org\/assets\/screenshot-3.jpg?rev=3753708","caption":"Configure Email &amp; confirmation, insert an answer into the subject and preview a sample notification."},{"src":"https:\/\/ps.w.org\/accessible-forms-by-accessible-org\/assets\/screenshot-4.jpg?rev=3753708","caption":"Review the saved configuration, check for blocking problems and complete the required author review before publishing."},{"src":"https:\/\/ps.w.org\/accessible-forms-by-accessible-org\/assets\/screenshot-5.jpg?rev=3753708","caption":"Place a published form on a page or post, or use the block and shortcode instructions."},{"src":"https:\/\/ps.w.org\/accessible-forms-by-accessible-org\/assets\/screenshot-6.jpg?rev=3753708","caption":"Help visitors correct their answers with a linked error summary and clear field-level messages."},{"src":"https:\/\/ps.w.org\/accessible-forms-by-accessible-org\/assets\/screenshot-7.jpg?rev=3753708","caption":"Review Entries using readable status views, search and filters."},{"src":"https:\/\/ps.w.org\/accessible-forms-by-accessible-org\/assets\/screenshot-8.jpg?rev=3753708","caption":"Choose a named retention policy and review data-deletion settings under Privacy."}],"raw_content":"<!--section=description-->\n<p>Accessible Forms helps you build contact forms that people can complete with a keyboard, a screen reader, magnification or a phone. Visible labels are required, choice fields use real groups, and validation lists every problem in a linked summary. Create as many forms as your site needs, each with its own fields, recipients and confirmation message.<\/p>\n\n<h4>Build forms<\/h4>\n\n<ul>\n<li>Thirteen field types: text, email, telephone, URL, number, date, time, section heading, message, dropdown, radio group, checkbox group and consent checkbox. Each form supports up to 50 fields.<\/li>\n<li>A guided editor with four steps: Build, Style, Email &amp; confirmation, and Review &amp; publish. Advanced settings stay collapsed until you need them.<\/li>\n<li>Help text, required fields, answer limits, automatic browser-autofill hints, keyboard field reordering, field search, duplicate field and undo for a removed field.<\/li>\n<li>Starter templates, including \"Report an accessibility barrier\" for your accessibility statement, and form duplication.<\/li>\n<li>Unsaved edits are kept in your browser and offered back after a reload or crash.<\/li>\n<\/ul>\n\n<h4>Style with confidence<\/h4>\n\n<ul>\n<li>Four built-in themes: Classic light, Ocean blue, Forest green and Midnight. Every theme passes the contrast checks.<\/li>\n<li>Contrast is checked again when the form is saved and when it is shown, so a form never renders colors that fail.<\/li>\n<li>The styles that accessibility depends on (focus indicator, readable text sizes, visible labels, real checkboxes and radios, target sizes and reflow) are protected against ordinary theme and page-builder CSS.<\/li>\n<li>Content suggestions in Review &amp; publish point out vague or duplicate labels, placeholder-style wording, long help text, forms that require everything, a missing email question, and form headings that skip a level on the page where the form is placed. Suggestions never block publishing.<\/li>\n<\/ul>\n\n<h4>Publish anywhere<\/h4>\n\n<ul>\n<li>An Accessible Form block with a searchable list of published forms and a live preview.<\/li>\n<li>\"Choose where it appears\" adds the form to an existing page, post or public custom post type, or creates a new draft with the form included.<\/li>\n<li>A shortcode for the Classic Editor and page builders.<\/li>\n<li>Draft changes stay separate from the live form until you publish them.<\/li>\n<li>Close a form by hand, with your own closed message.<\/li>\n<\/ul>\n\n<h4>Manage submissions<\/h4>\n\n<ul>\n<li>Entries with search, removable filter summaries, site-date shortcuts, read and unread, spam review and Trash.<\/li>\n<li>In-place list navigation, clear entry details, contextual empty states and permission-checked bulk Undo.<\/li>\n<li>Form manager and Submission reviewer roles, role permission controls, and per-form submission access lists with searchable member selection. No paid add-on is required to manage submission access.<\/li>\n<li>A remembered setup checklist and clear feedback for saved, unpublished and recovered edits.<\/li>\n<li>One notification email per form, to up to 20 primary recipients, sent through your normal WordPress mail setup, with an email sample, a test email, a staging test inbox and automatic retries.<\/li>\n<li>A thank-you page or an inline confirmation message.<\/li>\n<li>Automatic retention, per-form retention, and WordPress personal data export and erasure.<\/li>\n<li>An activity record of changes and deletions, without answers.<\/li>\n<\/ul>\n\n<h4>Spam protection without tracking<\/h4>\n\n<p>A honeypot, rate limits and link limits run on your own server. You can add self-hosted ALTCHA proof-of-work verification, which contacts no outside service.<\/p>\n\n<h4>Accessibility<\/h4>\n\n<p>Forms include associated labels, optional help text, semantic choice groups, visible required indicators, keyboard focus styles and server-side validation. Repeated embeds use separate control IDs. Forms submit without JavaScript; JavaScript adds in-page submission without a reload.<\/p>\n\n<p>When you view a page with a form while logged in as someone who can edit it, a live check tests that page as your theme actually renders it (labels, focus, contrast, target size, covered controls, text spacing) and shows the results above the form, only to you. Results are listed under Tools \u2192 Health.<\/p>\n\n<p>These features support accessible form design. They do not guarantee WCAG conformance or legal compliance. Your theme, page structure, field wording and assistive technology all affect the final experience. Test the finished page with a keyboard and a screen reader. Automated checks do not replace a manual accessibility review.<\/p>\n\n<h4>Privacy<\/h4>\n\n<p>This plugin sends no analytics or telemetry. Entries store the submitted values, submission time, the page path (without query parameters), browser information, a salted IP hash, spam status and notification outcome. Each form can store less of this metadata. The live accessibility check runs only for logged-in editors and stores, on your site, the page path, the time and the problems it found; results expire after 30 days. See the FAQ for retention, exports and uninstall behavior.<\/p>\n\n<h4>Accessible Forms Pro<\/h4>\n\n<p>An optional paid add-on, Accessible Forms Pro, adds file uploads, conditional fields, steps, custom styling, more notification options and entry workflow tools. This plugin is complete without it, and accessibility and privacy features are never held back for Pro.<\/p>\n\n<h4>Source code<\/h4>\n\n<p>All PHP, CSS and JavaScript is included in human-readable form in the plugin ZIP, and no build step is needed to modify the plugin. The bundled ALTCHA widget and library are unminified; THIRD-PARTY.txt links their original source and build instructions.<\/p>\n\n<p>ALTCHA browser widget 3.2.3 source and build instructions: https:\/\/github.com\/altcha-org\/altcha\/tree\/v3.2.3\nALTCHA PHP library 2.1.0 source: https:\/\/github.com\/altcha-org\/altcha-lib-php\/tree\/v2.1.0\nBoth are MIT licensed, with their license notices included in this plugin.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin does not connect to outside services.<\/p>\n\n<p>ALTCHA verification runs entirely on your site. The widget, translations, worker, challenge generation and verification are all served by your WordPress installation. There is no account, API key, tracking collector, verification cookie or call to an ALTCHA-hosted service.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin ZIP under Plugins \u2192 Add New Plugin \u2192 Upload Plugin, then activate it.<\/li>\n<li>Open Accessible Forms \u2192 Add New Form. Give the form an internal name, then work through Build, Style, and Email &amp; confirmation. Start with the default contact fields or pick a template.<\/li>\n<li>Save a draft at any step. In Review &amp; publish, fix every blocking problem, use Open keyboard test preview with sample answers, review the questions and instructions, and confirm the required author review before publishing.<\/li>\n<li>Choose \"Choose where it appears\" on the published form, or \"Place form\" in the forms list, and pick a page or post, or follow the block and shortcode instructions. The form is only added to your site when you choose a placement.<\/li>\n<li>On the page using your theme, repeat keyboard, zoom and screen-reader checks before sharing it. Submit a sample message and check Accessible Forms \u2192 Entries and your mailbox.<\/li>\n<li>Review Email delivery, Spam protection and Privacy under Settings.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20i%20create%20multiple%20forms%3F\"><h3>Can I create multiple forms?<\/h3><\/dt>\n<dd><p>Yes. Each form has its own fields, theme, recipients, subject, button text and confirmation message. Duplicate a form to start from an existing design. The copy is a draft; entries stay with the original form.<\/p><\/dd>\n<dt id=\"how%20do%20i%20add%20a%20form%20to%20a%20page%2C%20post%20or%20custom%20post%20type%3F\"><h3>How do I add a form to a page, post or custom post type?<\/h3><\/dt>\n<dd><p>Publish the form, then choose \u201cChoose where it appears\u201d in Review &amp; publish, or \u201cPlace form\u201d in the forms list. Choose a content type, search for an item and choose its initial position. Open its editor, click \u201cInsert form\u201d, review the position and save. Existing content is preserved, and you can move the block between paragraphs using the normal WordPress block controls.<\/p>\n\n<p>\u201cCreate a new page or post instead\u201d starts a draft of the selected content type with the form already included. Sites using the Classic Editor receive a shortcode. Your role's editing, creation and template restrictions still apply. Public custom post types must support the WordPress content editor to appear in this picker.<\/p><\/dd>\n<dt id=\"can%20i%20add%20the%20form%20as%20a%20block%20or%20put%20it%20in%20a%20precise%20position%3F\"><h3>Can I add the form as a block or put it in a precise position?<\/h3><\/dt>\n<dd><p>Yes. Insert the Accessible Form block in a page, post, supported custom content type or template and search for a published form by name. Move the block where you want it. The block previews the published form. Use \u201cRefresh forms\u201d after publishing a new form, or \u201cRefresh preview\u201d after publishing changed settings. Preview controls cannot send a submission.<\/p>\n\n<p>The block offers wide and full-width alignment when the theme supports them. To place a form in a sidebar, use a block-based widget area or a shortcode-capable widget.<\/p><\/dd>\n<dt id=\"how%20do%20i%20choose%20a%20thank-you%20page%20on%20a%20site%20with%20many%20pages%3F\"><h3>How do I choose a thank-you page on a site with many pages?<\/h3><\/dt>\n<dd><p>In Email &amp; confirmation, expand Use a thank-you page. Search by name or load more pages, then choose one under After submission. Only published pages without passwords are offered. If a chosen page later becomes unavailable or password-protected, visitors receive the inline confirmation instead.<\/p><\/dd>\n<dt id=\"can%20i%20change%20the%20colors%3F\"><h3>Can I change the colors?<\/h3><\/dt>\n<dd><p>Choose one of the four built-in themes in the Style step. Each passes the plugin's contrast checks: at least 4.5:1 for text and button labels, and 3:1 for button and field boundaries. Focus indicators, checkbox marks, validation feedback and confirmation text use the same checked palette. Your own colors, text size, spacing and layout are available with Accessible Forms Pro, under the same checks.<\/p>\n\n<p>These checks cover the plugin's own color surfaces. A site theme, custom CSS or browser autofill styling can affect the completed page, so inspect it after embedding the form.<\/p><\/dd>\n<dt id=\"is%20browser%20autofill%20automatic%3F\"><h3>Is browser autofill automatic?<\/h3><\/dt>\n<dd><p>Yes. Email, telephone and URL fields receive the relevant browser hints automatically. Recognizable name, company, job title and address labels receive suitable hints too. Advanced options let you choose a specific purpose. To turn autofill off for a question that looks like the visitor's own details, confirm that it asks about someone else, such as a friend's email.<\/p><\/dd>\n<dt id=\"can%20i%20save%20drafts%3F\"><h3>Can I save drafts?<\/h3><\/dt>\n<dd><p>Yes. Save a draft at any setup step. Changes to a published form remain separate until you choose Publish changes. Review &amp; publish previews your current edits; the block and public page use the published version.<\/p>\n\n<p>If your edits break an accessibility rule, they are still saved, and the editor lists what to fix each time you open it. They cannot be published until the problems are fixed, and visitors keep seeing the last version that passed. You can also discard them. The editor points out most problems as you type.<\/p>\n\n<p>Before each publication, review the questions and instructions and confirm the required author review in Review &amp; publish. Changes clear that confirmation. Server checks still run without JavaScript, and first publication through Quick Edit or bulk actions requires the form editor's review. Passing checks is not an accessibility certification.<\/p>\n\n<p>Open keyboard test preview creates a private, working copy of current edits for 30 minutes. Test questions, errors and confirmation with sample answers. It creates no entries or notifications and uploads no files. Without JavaScript file selection is disabled. Test current edits with your site theme lets you choose an editable page for a private snapshot, replacing an existing embed or appending to normal page content without changing the page or live form. Spam verification, save\/resume, actual attachments and delivery need a normal staging test.<\/p>\n\n<p>Accessibility test record saves the tested draft and your reported browser, assistive technology, page and results. Leave unperformed tests as Not tested. Ten recent reports are retained and relevant changes mark them out of date. Recording works without JavaScript and does not publish or certify the form. Covering checks examine all active plugin controls and repeat for states you reach; large or interrupted checks remain incomplete.<\/p><\/dd>\n<dt id=\"what%20if%20a%20published%20form%20does%20not%20meet%20newer%20checks%3F\"><h3>What if a published form does not meet newer checks?<\/h3><\/dt>\n<dd><p>When an update makes the checks stricter, a published form that no longer passes stays online, so the pages that use it keep working. The forms list, the editor and Tools \u2192 Health say which forms need fixing and what to fix.<\/p><\/dd>\n<dt id=\"why%20are%20visible%20labels%20required%3F\"><h3>Why are visible labels required?<\/h3><\/dt>\n<dd><p>Labels keep a field's purpose visible while typing and connect the control with its accessible name. Placeholders cannot replace them in this editor. Labels, choices, the heading and the button text must be written in words, not only symbols or emoji, because screen readers announce them as names. Two questions can share a label only under different section headings, and the heading then becomes part of each question's name, such as \"Billing address Street\".<\/p><\/dd>\n<dt id=\"does%20it%20work%20without%20javascript%3F\"><h3>Does it work without JavaScript?<\/h3><\/dt>\n<dd><p>The public form submits and shows validation feedback without JavaScript. Cached embeds may request one additional review before sending; an uncached form link is also available. If ALTCHA verification is enabled, messages without a token go to Needs review without email notifications. Adding and rearranging fields in the admin editor requires JavaScript.<\/p><\/dd>\n<dt id=\"do%20i%20have%20to%20configure%20smtp%3F\"><h3>Do I have to configure SMTP?<\/h3><\/dt>\n<dd><p>No. Notifications use your existing WordPress mail setup, including any SMTP plugin you already use. A successful test means the mail transport accepted the message; check the recipient's inbox to confirm delivery.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20saving%20or%20email%20delivery%20fails%3F\"><h3>What happens if saving or email delivery fails?<\/h3><\/dt>\n<dd><p>A submission is stored before a notification is attempted. If storage fails, the form shows an error and keeps the visitor's answers. If email fails, the stored entry records the failure and the notification is retried. An uncertain network response does not trigger an automatic second submission.<\/p><\/dd>\n<dt id=\"are%20notifications%20sent%20immediately%3F\"><h3>Are notifications sent immediately?<\/h3><\/dt>\n<dd><p>Each submission is stored first, then a background task sends its notification. Failed attempts retry; if the outcome is uncertain, the entry is flagged for review instead of being resent automatically. WordPress cron depends on site traffic or a server cron job. Settings include a staging test inbox that replaces the real recipients.<\/p><\/dd>\n<dt id=\"who%20can%20see%20submissions%3F\"><h3>Who can see submissions?<\/h3><\/dt>\n<dd><p>Administrators have full access. Editors can build forms but do not automatically see submissions: form editing, reading submissions, exporting, deleting and sending notifications are separate permissions.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20delete%20a%20form%3F\"><h3>What happens when I delete a form?<\/h3><\/dt>\n<dd><p>WordPress moves it to Trash first. Its existing entries are retained and remain accessible in Entries. You can delete entries separately or let the retention policy remove them.<\/p><\/dd>\n<dt id=\"what%20happens%20when%20i%20uninstall%20the%20plugin%3F\"><h3>What happens when I uninstall the plugin?<\/h3><\/dt>\n<dd><p>Completed entries and configuration are retained by default. Enable \u201cDelete all forms and entries when the plugin is deleted\u201d under Privacy to also remove forms, entries and settings. Deactivation keeps data.<\/p><\/dd>\n<dt id=\"how%20long%20are%20entries%20kept%3F\"><h3>How long are entries kept?<\/h3><\/dt>\n<dd><p>Received submissions are kept for 365 days by default. Each form can use the site default, delete entries after a set period, or keep them until manually deleted. The form shows the current site default when it inherits that policy. A new submission keeps the retention policy in effect when it was received. Spam and Needs review entries have a separate 30-day limit. Activity records omit answers and credentials and expire after 90 days. Trash expires after 30 days or the earlier applicable limit. A daily WordPress cron job removes expired records.<\/p><\/dd>\n<dt id=\"how%20do%20privacy%20exports%20and%20erasure%20work%3F\"><h3>How do privacy exports and erasure work?<\/h3><\/dt>\n<dd><p>WordPress privacy tools match entries by an exact submitted email address; forms without an email field need manual review. Erasure removes matching entries along with their notification payloads, private notes and any stored attachments. Suggested policy text is available in WordPress's privacy policy guide.<\/p><\/dd>\n<dt id=\"how%20does%20altcha%20verification%20behave%3F\"><h3>How does ALTCHA verification behave?<\/h3><\/dt>\n<dd><p>ALTCHA runs a proof-of-work check automatically when a visitor uses a form. Challenges are bound to the form and site, expire after 20 minutes, and can be accepted only once. If JavaScript is off or a token is missing, invalid, expired or reused, the message is held in Needs review without an email notification, so review that list regularly. The live site must use HTTPS (localhost also works for development). Proof of work raises the cost of automated abuse; it does not catch all spam or replace moderation.<\/p><\/dd>\n<dt id=\"does%20free%20require%20pro%2C%20a%20paid%20license%20or%20an%20external%20account%3F\"><h3>Does Free require Pro, a paid license or an external account?<\/h3><\/dt>\n<dd><p>No. Every feature included in this plugin is available without Pro, payment, a license key or an external account. This includes team roles, role permission controls and creating, editing or removing per-form submission access lists. Accessible Forms Pro is a separate, optional plugin distributed outside WordPress.org; its additional feature code is not included in this package.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20data%20from%20an%20inactive%20add-on%3F\"><h3>What happens to data from an inactive add-on?<\/h3><\/dt>\n<dd><p>The plugin preserves configuration supplied by an add-on so that an administrator can reactivate that add-on later without losing its settings. It does not provide the absent add-on's feature implementation. Existing submissions follow the configured privacy and retention policy. Submission access rules belong to Free and remain manageable and enforced regardless of whether an add-on is active.<\/p><\/dd>\n<dt id=\"are%20content%20suggestions%20an%20accessibility%20audit%3F\"><h3>Are content suggestions an accessibility audit?<\/h3><\/dt>\n<dd><p>No. They flag common wording and structure problems that make forms harder to complete. They cannot tell whether your questions make sense to your visitors, and they do not check your theme or page. Test the finished page with a keyboard and a screen reader.<\/p><\/dd>\n<dt id=\"what%20does%20this%20plugin%20not%20do%3F\"><h3>What does this plugin not do?<\/h3><\/dt>\n<dd><p>It focuses on contact forms and enquiries. It does not process payments, reserve event inventory, or offer arbitrary custom CSS controls.<\/p><\/dd>\n<dt id=\"how%20are%20submission%20dates%20stored%3F\"><h3>How are submission dates stored?<\/h3><\/dt>\n<dd><p>New submission, reply and resolution times are stored in UTC and shown in the current WordPress site time zone. Date filters use calendar days in that zone, including daylight-saving changes. Follow-up dates remain calendar dates. Exported event times include their UTC offset.<\/p>\n\n<p>Records from development builds may have dates without a known original time zone. They retain their original values and are labelled unconfirmed. Under Tools \u2192 Health, a settings administrator can confirm the original zone for all records or a selected form. Conversion runs in resumable batches and retains the original dates. Repeated daylight-saving hours stay unconfirmed unless an earlier or later occurrence is explicitly chosen. Invalid or nonexistent local times are never guessed. Unconfirmed dates are excluded from response-time statistics and creation-date-based cleanup; an existing UTC expiry or Trash deadline still applies.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.4.1<\/h4>\n\n<ul>\n<li>Render the editor workspace, navigation and four step panels with the initial page to prevent a delayed layout change when JavaScript starts.<\/li>\n<li>Restore native WordPress checkbox sizing so the required-review checkmark stays centered on desktop and mobile, while preserving the large label target and keyboard focus.<\/li>\n<li>Load form styles earlier for known shortcodes, blocks, synced content and selected template parts. Include render-discovered add-on styles in standalone completion pages.<\/li>\n<li>Consolidate repeated admin styles and keep conditional-field announcements compatible with visitor text-spacing adjustments.<\/li>\n<li>Keep section links, draft saving, native publishing and required author review available without JavaScript; hide step guidance that no longer matches the fallback view.<\/li>\n<li>Preserve existing forms, entries, settings and permissions. Database version 8 and extension API 9 are unchanged.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Simplify navigation across the builder, Settings, Tools, placement, Forms and Entries with visible labels, small decorative SVG icons and an active underline. Preserve keyboard focus, native links and unsaved-change protection.<\/li>\n<li>Make the editor more compact, remove empty advanced sections, and keep field type and required state visible on small screens.<\/li>\n<li>Open Style in its Normal preview, with separate Focus and Error previews that do not change the saved form.<\/li>\n<li>Add an Insert answer control beside the notification subject and place the sample email preview with its related controls.<\/li>\n<li>Shorten Review &amp; publish guidance and make keyboard testing easier to find while preserving required author review and server-side publication checks.<\/li>\n<li>Replace numeric retention shortcuts with named site-default, timed-deletion and manual-deletion choices. Show the inherited policy and preserve existing entries' retention rules.<\/li>\n<li>Count Unicode code points consistently in browser and server character limits. Keep over-limit answers intact and explain how to correct them, including without JavaScript.<\/li>\n<li>Clarify email-failure recovery using actions available to the current user and hide unresolved counts when no active extension supplies that workflow.<\/li>\n<li>Move raw entry diagnostics into Technical details, show affected forms in Activity with permission-checked links, and keep wide tables usable on small screens.<\/li>\n<li>Keep retention editing in Privacy, with a summary and link from Health, and make Free placement and team-access guidance accurate.<\/li>\n<li>Preserve stored forms, entries, permissions and settings. Database version 8 and extension API 9 are unchanged.<\/li>\n<\/ul>\n\n<h4>1.3.2<\/h4>\n\n<ul>\n<li>Make team roles, role permissions and per-form submission access controls fully available in Free.<\/li>\n<li>Preserve saved access rules and show an explicit recovery choice for damaged rules.<\/li>\n<li>Verify nonce and permissions directly before saving access rules or changing team permissions.<\/li>\n<li>Require a user-specific nonce before opening an entry marks it as read; plain links remain viewable and offer an explicit Mark as read action.<\/li>\n<li>Remove the notice asking users to activate an add-on to edit submission access.<\/li>\n<li>Keep the existing plugin name, slug and data identifiers for the ownership clarification requested by the review team.<\/li>\n<\/ul>\n\n<h4>1.3.1<\/h4>\n\n<ul>\n<li>Enforce the local verification challenge limit across simultaneous requests and refuse challenges when the limit cannot be recorded safely.<\/li>\n<li>Keep entry lists, counts and detail permissions consistent when a saved per-form access rule is damaged, including while Pro is inactive.<\/li>\n<li>Refresh translations for current interface text and clarify bundled dependency sources and readme sections.<\/li>\n<li>Preserve existing forms, entries, settings and extension API 8 compatibility.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Add a scoped, single WordPress mail handoff for already prepared messages, used by Pro's recipient-specific 15-minute retry.<\/li>\n<li>Extension API 8 supports Pro 1.3.0. Update Free before Pro; forms, entries and settings are preserved.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Pass entry, notification job, purpose and staging context to trusted scoped email transports.<\/li>\n<li>Preserve durable submissions, notification retry limits and uncertainty handling.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Scoped email delivery API for dedicated Pro services, after staging redirection and before the WordPress mail route.<\/li>\n<li>Interrupted or invalid provider responses stop automatic sending to prevent duplicates.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Private previews of unpublished edits inside editable themed pages; revision-linked manual test records with explicit incomplete, problem and stale states.<\/li>\n<li>Covering checks for all active controls, reached-state rechecks and focus scrolling around fixed overlays.<\/li>\n<li>Initial release baseline of Accessible Forms.<\/li>\n<li>Unlimited forms, thirteen field types, starter templates and a guided editor with separate draft and published versions.<\/li>\n<li>Visible labels, semantic choice groups, linked validation summaries, keyboard focus and contrast-checked themes.<\/li>\n<li>Required author review before publication, server-enforced publication checks and linked blocking feedback.<\/li>\n<li>Private keyboard test previews for unpublished edits, with real validation and no entries, uploaded files or notifications.<\/li>\n<li>Block, shortcode and guided placement for pages, posts and supported custom content types.<\/li>\n<li>Searchable Forms and Entries screens with in-place navigation, clear filters, contextual empty states and readable entry details.<\/li>\n<li>Shared admin style roles, readable metadata and rounded small-screen actions; secondary shortcode tools, progressive filters and an actionable Unread view with safe bulk Undo and return focus.<\/li>\n<li>Visible required publication review, grouped previews and test records, and a clear placement follow-up.<\/li>\n<li>Accurate bulk-action feedback, permission-checked Undo, browser draft recovery and a remembered setup checklist.<\/li>\n<li>WordPress email delivery, test messages, a staging inbox, background retries and visible delivery outcomes.<\/li>\n<li>Local spam filters and optional self-hosted ALTCHA verification without tracking.<\/li>\n<li>Per-form retention, private access controls, redacted diagnostics, activity records and personal data export and erasure.<\/li>\n<li>UTC event storage, site-time-zone display and date filters, and resumable conversion of confirmed historical dates with original values preserved.<\/li>\n<li>Entry pagination loads only the displayed records; indexed list and summary queries support larger collections.<\/li>\n<\/ul>","raw_excerpt":"Contact forms with visible labels, linked error summaries, contrast-checked themes and a clear entries screen.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bre.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/386209","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bre.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/bre.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/bre.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=386209"}],"author":[{"embeddable":true,"href":"https:\/\/bre.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/accessibledotorg"}],"wp:attachment":[{"href":"https:\/\/bre.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=386209"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/bre.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=386209"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/bre.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=386209"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/bre.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=386209"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/bre.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=386209"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/bre.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=386209"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}