{
  "dokument": "tilgjengelighet",
  "sprak": "en",
  "versjon": "2026-10-07",
  "type": "erklaering",
  "autoritativ": false,
  "tittel": "Accessibility statement for Inxo",
  "omfang": "inxo.app and organisations' own addresses under the same domain",
  "versjonslinje": "Version 7 October 2026 · inxo.app and organisations' own addresses under the same domain",
  "felt": {
    "dokument": "tilgjengelighet",
    "sprak": "en",
    "versjon": "2026-10-07",
    "type": "erklaering",
    "status": "gjeldende",
    "autoritativ": "false",
    "tittel": "Accessibility statement for Inxo",
    "ingress": "What we measure, what is not in order, and where to tell us. This statement is voluntary — we are under no obligation to publish one, and that belongs here.",
    "kjenne": "Accessibility",
    "sti": "/tilgjengelighet",
    "omfang": "inxo.app and organisations' own addresses under the same domain",
    "beskrivelse": "Accessibility statement for Inxo from CIRON AS. Compliance status against WCAG 2.2 level AA, known non-conformances, how the statement was prepared, and where to give feedback."
  },
  "innhold": [
    {
      "art": "kapittel",
      "nummer": "1",
      "tittel": "The commitment",
      "anker": "1"
    },
    {
      "art": "punkt",
      "nummer": "1.1",
      "tittel": null,
      "anker": "1-1"
    },
    {
      "art": "avsnitt",
      "tekst": "CIRON AS works to make Inxo usable by everyone, whatever their abilities. A preparedness tool that works only for some does not work."
    },
    {
      "art": "punkt",
      "nummer": "1.2",
      "tittel": "This statement is voluntary.",
      "anker": "1-2"
    },
    {
      "art": "avsnitt",
      "tekst": "The duty to publish an accessibility statement follows from section 4e of the Norwegian regulation on universal design of ICT solutions, and it applies to the **public sector**. CIRON AS is a private company and is under no such duty. We publish the statement anyway, for two reasons: our customers are often public bodies who need this information for their own statement, and a claim about accessibility is worthless without somewhere it can be checked."
    },
    {
      "art": "punkt",
      "nummer": "1.3",
      "tittel": null,
      "anker": "1-3"
    },
    {
      "art": "avsnitt",
      "tekst": "Neither can the solution be registered at uustatus.no. Digdir grants access there only to public bodies. The statement therefore lives here, at the solution's own address."
    },
    {
      "art": "kapittel",
      "nummer": "2",
      "tittel": "Scope",
      "anker": "2"
    },
    {
      "art": "punkt",
      "nummer": "2.1",
      "tittel": null,
      "anker": "2-1"
    },
    {
      "art": "avsnitt",
      "tekst": "This statement applies to the public website at `inxo.app` and to the application itself, which each organisation reaches at its own address under the same domain."
    },
    {
      "art": "punkt",
      "nummer": "2.2",
      "tittel": null,
      "anker": "2-2"
    },
    {
      "art": "avsnitt",
      "tekst": "The statement does not cover content customers enter into the tool themselves — plans, exercise scripts, log entries and attachments. Responsibility for the accessibility of that content rests with the organisation that enters it. The tool is built to make it possible: heading levels, text alternatives and readable text size come with it."
    },
    {
      "art": "kapittel",
      "nummer": "3",
      "tittel": "Compliance status",
      "anker": "3"
    },
    {
      "art": "punkt",
      "nummer": "3.1",
      "tittel": null,
      "anker": "3-1"
    },
    {
      "art": "avsnitt",
      "tekst": "Inxo is **partially compliant** with WCAG 2.2 level AA, because of the non-conformances listed in chapter 4."
    },
    {
      "art": "punkt",
      "nummer": "3.2",
      "tittel": "We measure against a stricter requirement than the law sets.",
      "anker": "3-2"
    },
    {
      "art": "avsnitt",
      "tekst": "The legal floor for a private company in Norway is WCAG 2.0 level A and AA, with exemptions for success criteria 1.2.3, 1.2.4 and 1.2.5. We measure against **WCAG 2.2 level AA**, which contains the whole of WCAG 2.1 AA. A public-sector customer can therefore use this statement directly in its own statement under section 4e, which requires WCAG 2.1 AA."
    },
    {
      "art": "punkt",
      "nummer": "3.3",
      "tittel": "We also measure text contrast against level AAA.",
      "anker": "3-3"
    },
    {
      "art": "avsnitt",
      "tekst": "Success criterion 1.4.6 requires 7:1 for normal text and 4.5:1 for large text. That is CIRON's own requirement, decided on 26 September 2026, and it applies in every theme and on the surface the text actually sits on. It is enforced by a measurement in a browser on the finished page, not by comparing colour values in a stylesheet."
    },
    {
      "art": "kapittel",
      "nummer": "4",
      "tittel": "Non-accessible content",
      "anker": "4"
    },
    {
      "art": "punkt",
      "nummer": "4.1",
      "tittel": "Non-conformance with WCAG 2.2 level AA",
      "anker": "4-1"
    },
    {
      "art": "avsnitt",
      "tekst": "**No known non-conformances.** The two recorded here on 27 September 2026 were fixed on 29 September 2026, together with five more found during the same review."
    },
    {
      "art": "punkt",
      "nummer": "4.1.1",
      "tittel": "What was recorded here, and what the measurement showed",
      "anker": "4-1-1"
    },
    {
      "art": "avsnitt",
      "tekst": "The statement recorded two non-conformances: the marker colour for the tactical level measured at 2.78:1 and the marker colour for exercise state at 2.72:1, against the 3:1 required by success criterion 1.4.11."
    },
    {
      "art": "avsnitt",
      "tekst": "**Both figures were measured against the lightest surface in the product.** The same colours sit just as often on the two darker surfaces, and there they measured 2.62:1 and 2.27:1. The non-conformance was therefore recorded as milder than it was. This is worth stating plainly: a non-conformance measured against the surface that gives the best figure is not mismeasured by accident — it is a choice of measuring point that nobody wrote down."
    },
    {
      "art": "avsnitt",
      "tekst": "The colours were fixed on 29 September 2026 and changed again on 30 September. **The command levels no longer carry hue.** They are three steps of a neutral scale, distinguished by lightness, and the level is always also given as text. Hue is reserved for the four markers on the readiness scale, which are the only things in the product that carry meaning without words."
    },
    {
      "art": "avsnitt",
      "tekst": "The four markers lie at least **ΔE 15.7** apart in the light theme and **ΔE 21.8** in the dark theme, in whichever form of vision puts them closest — above the 14 the palette was chosen against. The distance is calculated for normal vision and the three most common forms of colour blindness, in the model of Machado, Oliveira and Fernandes (2009)."
    },
    {
      "art": "avsnitt",
      "tekst": "The figure in the previous version of this statement, 14.7, was calculated in a coarser model. The two models can disagree by several units on the same pair of colours, and a requirement only means something in the model it was set in. The measurement is now locked to the Machado model, and a release that replaces it is stopped."
    },
    {
      "art": "punkt",
      "nummer": "4.1.2",
      "tittel": "Five non-conformances found in the same review, all fixed",
      "anker": "4-1-2"
    },
    {
      "art": "tabell",
      "hode": [
        "What",
        "Criterion",
        "Measured",
        "Required"
      ],
      "rader": [
        [
          "The state band during an exercise, light theme",
          "1.4.6 Contrast (Enhanced) (AAA, CIRON's own requirement)",
          "3.10:1",
          "7:1"
        ],
        [
          "The state band during an exercise, dark theme",
          "1.4.6 Contrast (Enhanced) (AAA, CIRON's own requirement)",
          "1.73:1",
          "7:1"
        ],
        [
          "The labels \"Connected\" and \"N critical functions without a deputy\", when the user has chosen the light theme explicitly",
          "1.4.6 Contrast (Enhanced) (AAA, CIRON's own requirement)",
          "5.46:1 and 4.40:1",
          "7:1"
        ],
        [
          "The border around secondary buttons and form fields, both themes",
          "1.4.11 Non-text Contrast (AA)",
          "1.75:1 and 1.88:1",
          "3:1"
        ],
        [
          "Button text on the three coloured level surfaces, dark theme",
          "1.4.6 Contrast (Enhanced) (AAA, CIRON's own requirement)",
          "6.31:1",
          "7:1"
        ]
      ]
    },
    {
      "art": "avsnitt",
      "tekst": "Two of them deserve a sentence each, because they explain why they were allowed to stand:"
    },
    {
      "art": "avsnitt",
      "tekst": "**The exercise band** had been unreadable since the colour was introduced. The browser measurement never ran with the state set, so it measured normal operations only — the one state the fault was not in. The measurement now covers all four states, in both themes."
    },
    {
      "art": "avsnitt",
      "tekst": "**The labels** were unreadable only for a user who has chosen the light theme explicitly. The app defaults to \"follow the system\", and the measurement never made the choice itself. The fault was therefore visible to users and invisible to the measurement."
    },
    {
      "art": "punkt",
      "nummer": "4.1.3",
      "tittel": "Selected state — decided 30 September 2026",
      "anker": "4-1-3"
    },
    {
      "art": "avsnitt",
      "tekst": "The selected state of a button or a menu item was previously shown with a translucent wash of 8–10 per cent, measuring between 1.1:1 and 1.4:1 against the surface beneath. Whether the wash was \"visual information required to identify the state\" under success criterion 1.4.11 was recorded in this statement as an open question of interpretation."
    },
    {
      "art": "avsnitt",
      "tekst": "CIRON AS decided it on 30 September 2026: **selected state shall reach 3:1 against the surface it sits on.** The indicator can be the fill or a border of at least two pixels, and one of them must meet the requirement. It is now measured at every release, in the browser, on every element marked as selected — and the state is still also carried by `aria-pressed` or `aria-current`, which a screen reader announces."
    },
    {
      "art": "punkt",
      "nummer": "4.1.4",
      "tittel": "None of the marker colours carries information on its own",
      "anker": "4-1-4"
    },
    {
      "art": "avsnitt",
      "tekst": "The level and the state are also given as text, and the text meets the contrast requirement."
    },
    {
      "art": "punkt",
      "nummer": "4.1.5",
      "tittel": "Found and fixed after 29 September 2026",
      "anker": "4-1-5"
    },
    {
      "art": "tabell",
      "hode": [
        "What",
        "Criterion",
        "Found",
        "Fixed"
      ],
      "rader": [
        [
          "Transitions and animations on the legal pages were not switched off for users who have chosen \"reduce motion\". The setting was respected in the app, not in the documents",
          "2.3.3 Animation from Interactions (AAA, CIRON's own requirement)",
          "Thirteen transitions",
          "5 October 2026"
        ],
        [
          "The \"Print\" button on the terms of use, the accessibility statement and the data processing agreement did nothing",
          "None — a function, not a success criterion. Printing is one of the ways to obtain content in another form (see 6.3)",
          "On all six pages, both languages",
          "5 October 2026"
        ],
        [
          "On the exercise script timeline, events and action cards were distinguished by border colour alone. To a user with a colour vision deficiency they looked the same",
          "1.4.1 Use of Color (A)",
          "Every placed item",
          "7 October 2026 — the type is now written as text in the item"
        ],
        [
          "Fields that must be filled in were not marked. Users found out only when saving was rejected",
          "3.3.2 Labels or Instructions (A)",
          "51 fields in 37 forms",
          "7 October 2026 — marked with an asterisk and explained at the top of the dialog; length requirements are shown at the field"
        ],
        [
          "An empty note in \"My shift\" gave no response — the button appeared not to work",
          "3.3.1 Error Identification (A)",
          "One field",
          "7 October 2026 — the field now says what is missing"
        ]
      ]
    },
    {
      "art": "avsnitt",
      "tekst": "Both had the same cause, and it is worth stating: **the browser measurement ran without the security headers the pages have in production.** The content security policy only allows script and style from our own files, so in production the browser blocked the code behind the print button and the script that measures the height of the top bar. During measurement both worked, because the policy was not there. Without the height measurement a fixed fallback value applied, and on narrow screens where the bar wraps onto two rows, a link to a section could land with the heading partly under the bar. This was not measured while it stood."
    },
    {
      "art": "avsnitt",
      "tekst": "The finding on motion came from the same change: once the measurement had the real headers, it could no longer switch off motion by itself, and had to ask for it the way a user does — through the setting. That made it visible that the pages did not respond to it."
    },
    {
      "art": "punkt",
      "nummer": "4.2",
      "tittel": "Disproportionate burden",
      "anker": "4-2"
    },
    {
      "art": "avsnitt",
      "tekst": "We claim no disproportionate burden."
    },
    {
      "art": "punkt",
      "nummer": "4.3",
      "tittel": "Content outside the scope",
      "anker": "4-3"
    },
    {
      "art": "avsnitt",
      "tekst": "Inxo contains no pre-recorded audio or video, and no live broadcasts. Success criteria 1.2.1 to 1.2.5 are therefore not applicable. There are no maps in the solution."
    },
    {
      "art": "kapittel",
      "nummer": "5",
      "tittel": "How this statement was prepared",
      "anker": "5"
    },
    {
      "art": "punkt",
      "nummer": "5.1",
      "tittel": null,
      "anker": "5-1"
    },
    {
      "art": "avsnitt",
      "tekst": "The statement was prepared on 27 September 2026 and last updated on 7 October 2026. It applies from the latter date."
    },
    {
      "art": "punkt",
      "nummer": "5.2",
      "tittel": "Method: self-assessment, with automated measurement of the rendered page.",
      "anker": "5-2"
    },
    {
      "art": "avsnitt",
      "tekst": "The assessment was carried out by CIRON AS itself. No third-party assessment has been carried out, and we hold no certification."
    },
    {
      "art": "punkt",
      "nummer": "5.3",
      "tittel": null,
      "anker": "5-3"
    },
    {
      "art": "avsnitt",
      "tekst": "The self-assessment is not merely a review. Every release measures the surface in a real browser: text contrast against the composited background in each theme **and in each of the four readiness states**, contrast of the border around controls and of coloured markers, touch targets, focus indication, and that nothing overflows a surface or overlaps something else. Since 5 October 2026 the measurement runs with the same security headers the pages have in production, and also with \"reduce motion\" switched on. Selected state is measured against 3:1, and the colour distance between markers is calculated in a single locked model. A release that breaks one of the requirements is stopped in the build chain and does not ship."
    },
    {
      "art": "punkt",
      "nummer": "5.4",
      "tittel": null,
      "anker": "5-4"
    },
    {
      "art": "avsnitt",
      "tekst": "The statement is reviewed at least once a year, and in any case whenever something it states changes."
    },
    {
      "art": "kapittel",
      "nummer": "6",
      "tittel": "Feedback and contact",
      "anker": "tilbakemelding"
    },
    {
      "art": "punkt",
      "nummer": "6.1",
      "tittel": null,
      "anker": "6-1"
    },
    {
      "art": "avsnitt",
      "tekst": "If you find something that does not work for you, we want to know. Write to **contact@ciron.no**. Please say which page or screen it concerns, and what happened."
    },
    {
      "art": "punkt",
      "nummer": "6.2",
      "tittel": null,
      "anker": "6-2"
    },
    {
      "art": "avsnitt",
      "tekst": "We reply as soon as we can, and within ten working days at the latest. If we cannot fix it straight away, we say what we are doing instead and when we expect to be done."
    },
    {
      "art": "punkt",
      "nummer": "6.3",
      "tittel": null,
      "anker": "6-3"
    },
    {
      "art": "avsnitt",
      "tekst": "If you need content in another form because something in the solution is not accessible to you, ask at the same address. We will provide it."
    },
    {
      "art": "kapittel",
      "nummer": "7",
      "tittel": "Complaints",
      "anker": "7"
    },
    {
      "art": "punkt",
      "nummer": "7.1",
      "tittel": null,
      "anker": "7-1"
    },
    {
      "art": "avsnitt",
      "tekst": "The universal design requirement for ICT in private companies follows from section 18 of the Norwegian Equality and Anti-Discrimination Act and the regulation on universal design of ICT solutions."
    },
    {
      "art": "punkt",
      "nummer": "7.2",
      "tittel": null,
      "anker": "7-2"
    },
    {
      "art": "avsnitt",
      "tekst": "If you are not satisfied with our answer, you may complain to the **Norwegian Anti-Discrimination Tribunal** (Diskrimineringsnemnda), which hears cases about breaches of the Equality and Anti-Discrimination Act."
    },
    {
      "art": "punkt",
      "nummer": "7.3",
      "tittel": null,
      "anker": "7-3"
    },
    {
      "art": "avsnitt",
      "tekst": "The **Norwegian Authority for Universal Design of ICT** (Tilsynet for universell utforming av ikt), part of the Norwegian Digitalisation Agency, supervises the rules. It does not handle individual complaints, but it accepts reports."
    },
    {
      "art": "kapittel",
      "nummer": "8",
      "tittel": "What we do next",
      "anker": "8"
    },
    {
      "art": "punkt",
      "nummer": "8.1",
      "tittel": null,
      "anker": "8-1"
    },
    {
      "art": "avsnitt",
      "tekst": "The last open item — the question of interpretation about selected state — was decided on 30 September 2026 and is now measured (see 4.1.3). **The statement has no open items today.** If we find new ones, they are recorded here with what they measured, before they are fixed."
    },
    {
      "art": "punkt",
      "nummer": "8.2",
      "tittel": null,
      "anker": "8-2"
    },
    {
      "art": "avsnitt",
      "tekst": "We follow the work on EN 301 549 v4.1.1, which aligns the standard with WCAG 2.2. If it is cited in the Official Journal of the European Union, we will update this statement to refer to it."
    },
    {
      "art": "punkt",
      "nummer": "8.3",
      "tittel": null,
      "anker": "8-3"
    },
    {
      "art": "avsnitt",
      "tekst": "If the European Accessibility Act enters Norwegian law, we will reassess whether Inxo falls within its scope and correct this statement accordingly."
    }
  ]
}
