Platform guide · Neos

Neos accessibility and the BFSG

Neos is neither accessible nor inaccessible on its own, and the project says so itself: accessibility depends on the individual implementation and the editors' care [4]. Neos has no default theme. Every Neos site renders markup its agency wrote – NodeTypes that define the content, Fusion and AFX components that turn it into HTML – plus what editors enter inline. This page separates what Neos gives you from what stays your job, and names the places to test first.

Does the BFSG apply to your Neos site?

The BFSG does not cover websites as such. It covers listed services to consumers – e-commerce, banking, telecoms, e-books and elements of passenger transport among them – and has applied to them in Germany since 28 June 2025, transposing the European Accessibility Act [1][2]. A company's information site built with Neos is generally not one of those services. A booking or order function on it can be: if consumers conclude a contract through your site, that part is an e-commerce service, a "Dienstleistung im elektronischen Geschäftsverkehr" (§ 1(3) no. 5 BFSG) [1], whichever system runs it behind the scenes. For shops, see BFSG for online shops.

A purely B2B offer is not a service to consumers. Micro-enterprises providing services are exempt: fewer than 10 employees and an annual turnover or balance sheet total of no more than €2 million (§ 2 no. 17, § 3(3) BFSG) [1]; details on the micro-enterprise exemption page. Public bodies fall under BITV 2.0 instead. The wider picture is in the BFSG and EAA guide. Neos started in 2006 under the umbrella of the TYPO3 project and has been independent since 2015 [3]; agencies often weigh it against TYPO3 and Contao.

What the platform gives you, and what it does not

You get:

  • Full control of the markup. Content structure is defined in NodeTypes, written in YAML, and the rendering in Fusion with AFX templates – usually without writing PHP [6]. Nothing in the core forces markup on you that you would have to fight.
  • An honest vendor statement. Neos says that it does not obstruct you in building accessible websites and leaves the freedom to build highly accessible ones, while accessibility depends on the implementation and the editors [4]. In 2015 the project reported that a municipal site built with Neos had been certified WCAG 2.0 AA by the Dutch government [5] – proof that it can be done, not a statement about your site.
  • An alternative-text field on the standard image. In the standard content elements from neos/nodetypes, the image mixin carries an alternativeText property in the image section of the inspector [9], and the image element renders it as the alt attribute [10].
  • Validation where you configure it. NodeType properties can carry validators [8], so a project can make a field such as alternative text mandatory.
  • A place to review components. A living style guide package renders your Fusion components in isolation for testing and review [4].

You do not get:

  • A front end. There is no default theme to measure against; every component is project code, and its quality is your agency's.
  • Alt text per file. On the standard image element the alternative text belongs to the element on the page, not to the file in the media library [9], so the same picture placed five times needs it five times. The property has no validator by default [9].
  • Accessible packages. Slider, carousel and form packages exist [4], and each brings its own markup and scripts.
  • A migration that fixes content. Neos 9, released in April 2025, rebuilt the content repository [7]. It changes how content is stored, not the headings, links and images your editors have already written.

What we find on Neos sites

Component libraries built once and copied everywhere

A defect in one Fusion component repeats on every page that uses it: a teaser whose whole card is a link with the heading, text and "Read more" inside it, an icon button without a name, a card grid that uses headings for their size. The upside: a fix in the component fixes every page at once.

Alt text that lives on the element, not the image

Because the standard image element stores alternative text on the element [9], editors who reuse an image rarely fill it in again. Project-specific NodeTypes often have no alt field at all, or render the image's title instead. On the standard element, the title attribute falls back to the title stored in the media library [10], which then competes with the alt text.

Inline editing and heading structure

Neos edits content inline, on the page itself [6]. Editors see the design and choose what looks right: a heading format picked for its size, bold text in place of a heading, a list typed with hyphens. Which formats are offered is decided in the NodeType configuration, and on many projects every format is switched on.

Language fallbacks that change the language, not the attribute

Content dimensions let a site fall back to another variant when content is missing, for example from one language to another [4]. The page keeps the lang of the dimension being viewed, so a screen reader reads the fallback text with the wrong pronunciation rules. Check every language version for passages that are not in the page's language.

Menus are written per project in Fusion. Typical findings: mobile menus with a burger button that is not a button, no aria-expanded, and focus that runs behind the open panel. Carousel packages autoplay without a pause control and label their arrows with icons only.

Forms from the form framework

Neos's form framework and form builder let editors define forms, fields and validation rules [4]. The markup comes from the form package and your project's templates: check that every field has a visible label, that required fields and errors are announced, and that fields for personal data carry autocomplete.

Where to look first

Where to look first
CriterionWhy on NeosAutomation
1.1.1 Non-text Content (A)Alt text on the element, custom NodeTypes without itPartly automated
1.3.1 Info and Relationships (A)Card components, lists typed inlinePartly automated
2.4.6 Headings and Labels (AA)Heading formats chosen by sizeManual only
2.4.4 Link Purpose (In Context) (A)Teasers with "Read more" linksPartly automated
3.1.1 Language of Page (A)Layout templates without langAutomated
3.1.2 Language of Parts (AA)Dimension fallbacks into another languagePartly automated
4.1.2 Name, Role, Value (A)Burger menus, icon buttons, carouselsPartly automated
2.4.7 Focus Visible (AA)Project CSS without a focus stylePartly automated
3.3.2 Labels or Instructions (A)Form fields with placeholder onlyPartly automated
3.3.1 Error Identification (A)Form framework error messagesManual only

"Automated" means a rule can decide the criterion on its own; "partly automated" means a rule finds some failures and a person has to judge the rest. The full list is in WCAG 2.2 AA, criterion by criterion.

A sensible order of work

  1. List your components. Make an inventory of your NodeTypes and the Fusion components that render them. Review each one in the living style guide [4] with a keyboard before looking at pages.
  2. Fix at component level. Rank the crawl's issues by the number of pages, trace each to its component and fix it there. One change reaches every page.
  3. Make alt text part of the NodeType. Add an alternative-text property with a validator [8] to every NodeType that shows an image, with an explicit "decorative" option rather than an empty field nobody noticed.
  4. Limit inline formats. Offer editors the heading levels and formats a content type actually needs, and nothing that fakes structure.
  5. Check the dimensions. For each language, find content that falls back to another language, and either translate it or mark the passage with its own lang.
  6. Walk the journeys and re-test after upgrades. Walk navigation, forms and any booking or order path with a keyboard. After a Neos or package upgrade, crawl again: the markup is yours, and so are its regressions.

What Reviseberg checks on Neos – and what you still test yourself

Reviseberg crawls your site and runs every axe-core rule on every page at a desktop width of 1280 pixels, then repeats the rules that change with the layout – contrast and target size among them – at 360 pixels. Results are mapped to WCAG 2.2 A/AA and EN 301 549. Findings are grouped into issues by rule and ranked by the points you gain by fixing them, so a defect in one Fusion component shows up as one issue on 400 pages rather than 400 separate entries.

The keyboard agent opens the pages of a journey you name – the home page, a content page, a form – and presses Tab, Shift+Tab and Escape through each of them, recording every step. It reports unreachable elements, lost or invisible focus, missing skip links and keyboard traps. It does not fill in forms or place an order, so form errors and any booking or order steps are yours to walk by hand. The free report covers up to 100 pages and runs the keyboard agent on one page you choose. A staging site behind a password can be crawled from an account.

You still test some things yourself: whether alt text describes the image, whether headings and error messages make sense, and how the site behaves with a screen reader and zoom. Screen-reader, zoom and voice-control agents are not built yet; for those criteria the platform gives you guided manual tests, and a criterion nobody has tested is reported as untested, never as passed. There is no Neos package from us, nothing is applied to your site automatically, and we never inject an overlay script.

Written to be useful, not as legal advice. As of 27 September 2026.

Frequently asked questions

Is Neos accessible?

Neos is a system for building sites, not a finished site. As the project says, the result depends on the implementation and the editors [4]: a Neos site is exactly as accessible as its components and content.

Does upgrading to Neos 9 make us compliant?

No. Neos 9 rebuilt the content repository [7]. Your NodeTypes, Fusion components and content decide what visitors get, and an upgrade changes none of them unless your agency does.

Does an accessibility plugin or overlay help?

A widget layered over the site with JavaScript does not fix the causes in your components and content. In 2023 the European Disability Forum and IAAP stated that overlays do not make a website accessible or compliant with European accessibility legislation [11]. In 2025 the US Federal Trade Commission finalised an order requiring the overlay vendor accessiBe to pay $1 million over its compliance claims [12]. More: accessibility overlays.

Do we need an accessibility statement?

A public body publishes an accessibility statement under BITV 2.0, with a feedback mechanism. A business providing a service under the BFSG publishes information on how the service meets the accessibility requirements (§ 14 BFSG with Annex 3) [1] – a different document. The statement editor drafts it from your test results and only claims what they support.

Our agency built the site. Who fixes it?

Whoever maintains the components. Because a Neos front end is project code, findings go to the agency as component tickets, not to Neos. A report that groups findings by rule and page count makes that conversation short.

Sources

  1. Barrierefreiheitsstärkungsgesetz (BFSG), §§ 1(3) no. 5, 2 no. 17, 3(3), 14, Annex 3 – https://www.gesetze-im-internet.de/bfsg/ (wording checked via https://bfsg-gesetz.de/, 27 Sep 2026)
  2. Directive (EU) 2019/882 (European Accessibility Act) – https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32019L0882
  3. Neos.io, "About the project" ("Founded in 2006 – independent since 2015") – https://www.neos.io/community/about-neos/about.html
  4. Neos.io, feature list (Accessibility, standard content elements, content dimensions, forms, living style guide) – https://www.neos.io/features/feature-list.html
  5. Neos.io blog, "Neos website gets WCAG 2.0 accessibility certification" (17 Jul 2015) – https://www.neos.io/blog/neos-website-gets-accessibility-certification.html
  6. Neos Docs, Guide (content repository, NodeTypes, Fusion, AFX, inline editing) – https://docs.neos.io/guide/
  7. Neos.io blog, "Neos and Flow 9.0 Release" (3 Apr 2025) – https://www.neos.io/blog/neos-and-flow-9-0-release.html
  8. Neos documentation, NodeType Definition Reference (property validation) – https://neos.readthedocs.io/en/stable/References/NodeTypeDefinition.html
  9. Neos development collection, Neos.NodeTypes.BaseMixins ImageMixin (branch 9.0) – https://github.com/neos/neos-development-collection/blob/9.0/Neos.NodeTypes.BaseMixins/NodeTypes/Mixin/Image.yaml
  10. Neos development collection, Neos.NodeTypes:Image Fusion prototype (branch 9.0) – https://github.com/neos/neos-development-collection/blob/9.0/Neos.NodeTypes/Resources/Private/Fusion/Content/Image.fusion
  11. European Disability Forum & IAAP, "Accessibility overlays don't guarantee compliance with European legislation" (17 May 2023) – https://www.edf-feph.org/accessibility-overlays-dont-guarantee-compliance-with-european-legislation/
  12. US Federal Trade Commission, "FTC Approves Final Order Requiring accessiBe to Pay $1 Million" (22 Apr 2025) – https://www.ftc.gov/news-events/news/press-releases/2025/04/ftc-approves-final-order-requiring-accessibe-pay-1-million

See what a scan finds on your site

One page in about thirty seconds, no email needed. The full report covers up to 100 pages and a keyboard journey.