In today's digital world, accessibility is not only an ethical concern, but increasingly also a legal obligation. However, especially in the context of enterprise resource planning softwares such as Odoo, there are often hidden barriers that many developers and administrators miss. One such issue concerns the form fields in Odoo versions prior to 18, where no IDs are assigned to the input fields - a seemingly small detail with a big impact on accessibility.
The problem of missing input IDs
In Odoo versions below 18, form fields are not assigned IDs by default, which are linked to the corresponding label elements. However, this link between label and input field is a fundamental building block of digital accessibility. Without this link, screen readers and other assistive technologies cannot correctly interpret the mapping between label and input field, which significantly impairs the user experience for people with disabilities.
A correct HTML form should establish a clear link between the label and the input field:
<label for="email">E-Mail-Adresse:</label>
<input type="email" id="email" name="email">
In Odoo prior to version 18, however, the ID in the input element is often missing, which means that the for attributes of the labels do not work.
Legal framework conditions in the EU
In recent years, the European Union has stepped up its efforts to enforce digital accessibility. Directive (EU) 2016/2102 on the accessibility of websites and mobile applications of public sector bodies laid an important foundation stone. The European Accessibility Act (EAA) now extends these requirements to the private sector.
From 2025, significantly more digital products and services will have to fulfil accessibility requirements. Companies that do not adapt their digital offerings not only risk legal consequences, but also lose access to a significant user group - Around 1.2 million people with visual impairments live in Germany, of whom around 150,000 are definitely dependent on assistive technologies such as screen readers. (Source: German Association for the Blind and Visually Impaired (DBSV))
Why many companies still use Odoo 16 or 17
ERP systems form the backbone of a company's organisation. An update involves considerable effort, which is why the long support periods (Odoo 16 until October 2025, Odoo 17 until October 2026) are deliberately utilised. The update requires compatibility checks, customisation of individual developments, secure data migration, extensive testing and employee training and can lead to business interruptions. As major updates are rarely skipped in practice, companies migrate from version 16 to version 17 first - where the problem of missing input IDs still exists.
The quick fix: Manual customisation of the form fields
Fortunately, the problem of missing input IDs in Odoo can be solved without extensive programming work. Here is a step-by-step guide:
- Log in to your Odoo system as an administrator
- Click on ‘Editor’ in the top toolbar
- Select ‘Site’ in the navigation bar
- Open the ‘HTML/CSS Editor’
- Select the form element to be edited in the editor
- Manually add the appropriate IDs to the input fields, which are already referenced in the label via the for attribute
Example: If a label contains for=‘foobar’, add id=‘foobar’ to the corresponding input field.
The challenge with manual adjustments
Odoo displays an important warning when editing templates manually: Changes to HTML/CSS may be lost or cause problems in future updates. This warning is well-founded, as Odoo's standard templates are overwritten during an update, which can reset manual customisations.
The main reasons for this problem are:
- Odoo uses an inheritance system for QWeb templates
- Updates can change the structure of basic templates
- Direct changes to the HTML are not tracked in the database
This problem can lead to conflicts when updating Odoo, e.g. via Git, which must be resolved before the update.
The sustainable solution: custom themes as best practice
While the manual customisation of input IDs offers a quick solution, this approach often leads to problems with updates. Best practice in Odoo development is therefore the implementation of a custom theme.
However, implementing a custom theme requires in-depth knowledge of the Odoo architecture and experience in working with QWeb templates. Unlike manual customisations, this involves systematic interventions in the platform architecture.
Do you need help implementing a custom theme? You can contact us at any time:
Understanding accessibility as an opportunity
Adapting form fields in Odoo is just a small step on the way to comprehensive digital accessibility. However, it is precisely these seemingly small changes that can make all the difference for users with disabilities.
Accessibility should not be seen as an annoying obligation, but as an opportunity to make your own digital offerings accessible to all people. This is not only in line with the idea of inclusion, but also opens up new user groups and avoids legal risks.
The manual adaptation of Odoo forms may be a temporary solution - in the long term, it is to be hoped that Odoo and other software providers will integrate accessibility into their products from the ground up - as they have done with this issue from version 18 onwards. Until then, it is our responsibility as developers and administrators to make the digital world a little more accessible.