Feature Wiki
Tabs
Revamp linked terms (Tool)
Page Overview
[Hide]- 1 Initial Problem
- 2 Conceptual Summary
- 3 User Interface Modifications
- 4 Additional Information
- 4.1 Involved Authorities
- 4.2 Technical Aspects
- 4.3 Privacy
- 4.4 Security
- 4.5 Contact
- 4.6 Funding
- 5 Discussion
- 6 Implementation
- 6.1 Description and Screenshots
- 6.2 Test Cases
- 6.3 Privacy
- 6.4 Approval
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
- Authority to Sign off on Conceptual Changes: Killing, Alexander [alex]
- Authority to Sign off Code Changes: Killing, Alexander [alex]
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]