Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

image-20240508-150920.png Verbesserung der Barrierefreiheit

Zur Verbesserung der Barrierefreiheit wurden eindeutigere Bezeichnungen, Platzhalter und mehr Aria-Label hinzugefügt. Um diese Änderungen in bestehenden Projekten mit Überschreibung der Konfiguration zu übernehmen, müssen folgende Konfigurationen angepasst werden.

  • Auf der Ticketliste wird nun im Standard besser formuliert, nach welchen Kriterien gefiltert wird. Dafür wurde der placeholder der Felder “Bearbeitung von” und “Zugewiesene Gruppe" in der reporting.json und searchForm.json geändert:

    Codeblock
    {
        "component": "AutocompleteField",
        "colProps": {
            "breakpoints": {
                "sm": 12,
                "md": 6,
                "lg": 3
            }
        },
        "props": {
            "id": "assignedUser",
            "labelText": "ticketList.labels.assignedUser",
            "doSubmitOnChange": true,
            "controllerPath": "users",
            "scope": "ticketListGroupFilter",
            "labelTemplate": "{firstname} {lastname} ({email})",
            "inputProps": {
                "placeholder": "ticketList.labels.assignedUserPlaceholder"
            }
        }
    },
    {
        "component": "AutocompleteField",
        "colProps": {
            "breakpoints": {
                "sm": 12,
                "md": 6,
                "lg": 3
            }
        },
        "props": {
            "id": "assignedGroup",
            "labelText": "ticketList.labels.assignedGroup",
            "doSubmitOnChange": true,
            "controllerPath": "groups",
            "scope": "ticketListGroupFilter",
            "labelTemplate": "{name}",
            "inputProps": {
                "placeholder": "ticketList.labels.assignedGroupPlaceholder"
            }
        }
    },
  • Sind auf der auf Detailansicht eines Tickets im Abschnitt “Neue Nachricht verfassen” keine Textbausteine vorhanden, kann in newMessageForm.json unter dem key "noOptionsPlaceholder" ein Platzhaltertext eingefügt werden:

    Codeblock
    {
          "component": "GridRow",
          "childrenConfig": [
              {
                  "component": "TextModule",
                  "props": {
                      "id": "textModule",
                      "labelText": "ticketView.labels.textmodule",
                      "noOptionsPlaceholder": "ticketView.labels.noTextmodule",
                      "labelClass": "px-1",
                      "seperateCols": true,
                      "editorId": "messageToUser",
                      "noErrorClassName":"mb-2"
                  }
              }
          ]
      },
  • Im searchForm.json muss der KomponenteMultiSelectField ein Label für den Lösch-Button übergeben werden:

    Codeblock
      {
            "component": "MultiSelectField",
            "props": {
                "breakpoints": {
                    "sm": 12,
                    "xl": 6
                },
                "id": "tag",
                "inputProps": {
                    "btnLabel": "buttons.delete"
                },
                "labelText": "ticketList.labels.tag",
                "helpText": "ticketList.helpTexts.tag",
                "custom": false,
                "options": "tags",
                "doSubmitOnChange": true
            }
        }
  • Komponenten, die kein sichtbares Label haben, bekommen für eine barrierefreie Bedienung ein Aria-Label. Dieses muss in massoperationForm.json und textmoduleFilter.json durch die Angabe ariaLabelClassName": "sr-only" gesetzt werden:

  • massoperationForm.json:

    Codeblock
      
      {
          "component": "TicketRowSelectField",
          "colProps": {
              "breakpoints": {
                  "sm": 6,
                  "md": 4,
                  "lg": 2
              }
          },
          "props": {
              "id": "selection",
              "dataId": "selection",
              "dataItem": "oid",
              "controllerPath": "users",
              "ariaLabelClassName": "sr-only",
              "labelText": "ticketList.labels.selectEntrys",
              "doSubmitOnChange": true,
              "options": [
                  {
                      "value": "all", 
                      "label": "ticketList.labels.all"
                  },
                  {
                      "value": "no", 
                      "label": "ticketList.labels.no"
                  }
              ]
          }
      },
      {
          "component": "SelectSearchField",
          "colProps": {
              "breakpoints": {
                  "sm": 6,
                  "md": 4,
                  "lg": 2
                  
              }
          },
          "props": {
              "id": "status_massop",
              "options": "UMATTR:sd_status",
              "className": "w-100",
              "labelText": "ticketList.labels.assignStatus",
              "ariaLabelClassName": "sr-only",
              "inputProps": {
                  "placeholder": "ticketList.labels.assignStatus"
              }
              
          }
      },
      {
          "component": "AutocompleteField",
          "colProps": {
              "breakpoints": {
                  "sm": 6,
                  "md": 4,
                  "lg": 2
                  
              }
          },
          "props": {
              "id": "user",
              "dataId": "assignedUser",
              "dataItem": "oid",
              "controllerPath": "users",
              "scope": "assignment",
              "labelText": "ticketAdd.labels.user",
              "ariaLabelClassName": "sr-only",
              "labelTemplate": "{firstname} {lastname} ({email})",
              "inputProps": {
                  "placeholder": "ticketList.labels.assignUser"
              }
          }
      },
      {
          "component": "AutocompleteField",
          "colProps": {
              "breakpoints": {
                  "sm": 6,
                  "md": 4,
                  "lg": 2
                  
              }
          },
          "props": {
              "id": "group",
              "dataId": "assignedGroup",
              "dataItem": "oid",
              "controllerPath": "groups",
              "scope": "assignment",
              "labelText": "ticketAdd.labels.group",
              "ariaLabelClassName": "sr-only",
              "labelTemplate": "{name}",
              "inputProps": {
                  "placeholder": "ticketList.labels.assignGroup"
              }
          }
      }         

...