Feature Wiki

Information about planned and released features

Tabs

Revamp linked terms (Tool)

1 Initial Problem

Term definitions of glossaries, which are linked to e.g. ILIAS learning modules, are displayed in a tool slate inside the mainbar, whose content is rendered as an HTML <iframe> element. This approach creates several problems:

  • Plugins (and ILIAS components as well) cannot render elements in this context using an HTML <iframe> tag, because the nesting of two iframe's is not possible. This creates e.g. a problem for the H5P plugin, which cannot display contents anymore.
  • The rendering context varies between the different locations where content can be added using the ILIAS page editor. Without any reliable way to determine this context, its not possible to react with e.g. context-specific views or alternatives. However, we should rather streamline contexts instead of having a way to determine the context.
  • The iframe solutions is not well suited for screen-readers, which will read out the page information (again) when entering its content, and makes keyboard-navigation significantly harder.
  • The iframe solution adds unnecessary runtime overhead, because the content is loaded after the initial page is parsed, without a clear functional benefit in the current use case.

2 Conceptual Summary

We propose to replace the <iframe> with another HTML element, like a <section> or a simple <div> element. This change would:

  • Allow plugin developers to provide complex or interactive term definitions (e.g. H5P content) - without accidentally producing invalid HTML.
  • Streamline the integration of content created by the ILIAS page editor (more).
  • Improve the accessibility of glossary term definitions embeded this way.

3 User Interface Modifications

3.1 List of Affected Views

Although the proposed change is structural and does not introduce a visible UI change to end users, the following views will be technically affected:

  • Tool slate for glossary term definitions, linked to e.g. ILIAS learning modules.

3.2 User Interface Details

The tool slate for glossary term definitions will change from using an <iframe> tag to a <section> or <div>. This should have no implications on usability or styling.

3.3 New User Interface Concepts

-

3.4 Accessibility Implications

By removing the iframe and embedding content directly in the DOM, accessibility is expected to improve. Benefits include:

  • Better keyboard navigation between term definitions and parent page.
  • Less redundant page information for screen readers when entering the content.
  • Possibly other improvements like ARIA regions or focus handling, which could be added.

4 Additional Information

4.1 Involved Authorities

If this request is related to multiple components, please list both authorities for all related components.

4.2 Technical Aspects

The tool slate for glossary term definitions will change from using an <iframe> tag to a <section> or <div> tag. To account for the missing loading mechanism of the iframe, additional JavaScript is required to load and replace the tool slate contents. The client-side `AsyncRenderer` from the UI framework can be used to achieve this.

4.3 Privacy

-

4.4 Security

-

4.5 Contact

Person to be contacted in case of questions about the feature or for funding offers:  Lorenz, Katharina [klorenz]

4.6 Funding

Funding status and funding parties are listed in the block 'Status of Feature' in the right column of this page.

If you are interested to give funding for this feature, please get into contact with the person mentioned above as 'Contact'.

5 Discussion

6 Implementation

Feature has been implemented by {Please add related profile link of this person}

6.1 Description and Screenshots

{ Description of the final implementation and screenshots if possible. }

6.2 Test Cases

Test cases completed at {date} by {user}

  • {Test case number linked to Testrail} : {test case title}

6.3 Privacy

Information in privacy.md of component: updated at {date} by {user} | no change required

6.4 Approval

Approved at {date} by {user}.

Last edited: 10. Jul 2025, 16:25, Fuhrer, Thibeau [tfuhrer]