Skip to content

This is just a list where I publicly drop and re-arrange my ideas and todos for H5P stuff

License

Notifications You must be signed in to change notification settings

otacke/h5p-todo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 

Repository files navigation

h5p-todo

I thought it might be a good idea to better keep track of my ideas and todos related to H5P -- why not make that publicly?

In the pipeline ...

Content types not yet on the H5P Hub

Pull requests for bugfixes and new features for core components and plugins

Here's a list of my pull reququest to the H5P project since June 2021. Didn't keep track of those that were opened before since 2016.

I know of some pull requests that now raise merge conflicts as the original code was changes in the same spot. I have marked those that I know of with merge-conflict. Common practice dictates that I as the pull request owner should update this - but I will most likely will not do this anymore. I have done so very often, but given that my pull requests are completely ignored, I am going to wait until I get some feedback knowing that the pull request is actually appreciated.

  • H5P CLI: [Fix] Fix not loading h5p-core-button.css (pull request)
  • H5P CLI: [Fix] Add application specific style for editor iframe (pull request)
  • H5P CLI: [Fix] HFP-3901 Add mission fileIcon definition (pull request)
  • H5P CLI: [Fix] Exclude node_modules from livereload (pull request)
  • H5P CLI: [Fix] HFP-4040 Fix file extension detection (pull request)
  • H5P CLI: [Fix] HFP-4059 Add missing file type checking (pull request)
  • H5P CLI: [Fix] HFP-4060 Fix resetting state after content changed (pull request)
  • H5P CLI: [Feature] HFP-4061 Add reset button for sessions (pull request)
  • H5P CLI: [Feature] HFP-4063 Add support for user configuration file (pull request)
  • H5P CLI: _[Fix] HFP-4093 Improve color code detection (pull request)
  • H5P core: [Feature] Respect doNotTrack setting (pull request)
  • H5P core: [Fix] Fix uncaught exception when accessing localStorage (pull request)
  • H5P core: [Fix] Replace deprecated FILTER_SANITIZE_STRING (pull request)
  • H5P core: [Feature] Trigger set user data more often to ensure state transmission (pull request)
  • H5P core: [Feature] Add contentId to initialized event (pull request)
  • H5P core: [Fix] HFP-3649 Fix confirmation dialog button positioning (pull request)
  • H5P core: [Fix] HFP-3650 Fix semi-fullscreen impact by integration CSS (pull request)
  • H5P core: [Feature] Add reduced motion mode to confirmation dialog ([pull request](HFP-3815 h5p/h5p-php-library#160))
  • H5P core: [Chore] HFP-3843 Remove obsolete full screen handling (pull request)
  • H5P core: [Chore] Increase intelligibility of ifEmpty function (pull request)
  • H5P core/integrations: [Feature] Save content state in browser local storage (pull request 1) (pull request 2)
  • H5P core/integrations: [Fix] Fix deletion of view-editor-entangled libraries (HFP-3065) (pull request 1, pull request 2)
  • H5P Hub client: [Feature] Turn update available hint into a link (H5P-1982) (pull request)
  • H5P Hub client: [Feature] Add 'by' prefix for owner in content type details in order to make clear who created the content type (pull request)
  • H5P Hub client: [Fix] Fix ignoring other library owner in license view (pull request)
  • H5P editor core: [Fix] Fix resize of CKEditor instance (pull request)
  • H5P editor core: [Fix] Fix CKEditor base path (pull request)
  • H5P editor core: [Fix] Fix z-index of add file dialog (pull-request)
  • H5P editor core: [Fix] Fix accessing patch_version_in_folder_name (pull request)
  • H5P editor core: [Feature] Add accessibility improvements (Allow to flag video as sign language pull request) rejected despite pre-qualification
  • H5P editor core: [Feature] Add event on list item moved (pull request)
  • H5P editor core: [Feature] Allow to retrieve configuration of list widget (H5P-3599pull request)
  • H5P (editor) core: [Fix] Fix step validation of number field (pull request 1, pull request 2)
  • H5P editor core: [Fix] Fix use of spectrum parameter allowEmpty (pull request)
  • H5P editor core: [Fix] HFP-3851 Fix select field validation (pull request)
  • H5P editor core: [Fix] HFP-3852 Fix number field validation (pull request)
  • H5P editor core: [Feature] Add field name to library select field classname (pull request)
  • H5P editor core: [Fix] HFP-3870 Prevent crash if H5P Integration does not provide file icon (pull request)
  • H5P editor core: [Fix] HFP-3957 JI-6152 Stop focussing edit image button on content load (pull request)
  • H5P editor core [Fix] HFP-3989 Fix programmatically removing a list item (pull request)
  • H5P editor core [Feature] HFP-3989 Use removeItem for removeAllItems (list) (pull request)
  • H5P editor core [Fix] HFP-4034 Fix using default value for library widget (pull request)
  • H5P Joubel-UI: [Fix] Make scorebar progress unselectable (pull request)
  • Report: [Feature] Support questions where answers are neither right nor wrong (choice interaction) (pull request)
  • ShowWhen: [Feature] Trigger field below triggered field (pull request) merge-conflict
  • ShowWhen: [Feature] Relay changes from followed field (pull request) merge-conflict
  • ShowWhen: [Feature] Make more robust for multi-value rules (pull request)
  • VerticalTabs: [Feature] Hide buttons based on min/max setting (H5P-3599pull request)
  • WordPress plugin: [Feature] Set generous HTTP feature policy (pull request)
  • WordPress plugin: [Fix] Fix check for "install_recommended_h5p_libraries" capability (pull request)
  • WordPress plugin: [Fix] Add overflow-x scrollbar for data views that are too narrow (pull request)
  • WordPress plugin: [Fix] Fix export file not being deleted with content (pull request)
  • WordPress plugin: [Fix] Fix SQL for extra fields in results (pull request)
  • WordPress plugin: [Feature] Add support for the H5P OER Hub (pull request)
  • WordPress plugin: [Fix] H5P-3773 Fix potential memory issue (pull request)
  • WordPress plugin: [Fix] Fix sorting contents by author (pull request)
  • WordPress plugin: [Feature] Use language defined in user profile, not general site language (pull request)
  • WordPress mod plugin: [Fix] Fix deprecated use of "implode" argument order (pull request)

Pull requests for bugfixes and new features for existing content types

I know of some pull requests that now raise merge conflicts as the original code was changes in the same spot. I have marked those that I know of with merge-conflict. Common practice dictates that I as the pull request owner should update this - but I will most likely will not do this anymore. I have done so very often, but given that my pull requests are completely ignored, I am going to wait until I get some feedback knowing that the pull request is actually appreciated.

  • Accordion: [Feature] HFP-4137 Use H5P.Column for content (pull request)
  • Accordion: [Fix] Fix word-wrap in button (pull request)
  • Accordion: [Feature] (HFP-3819 Allow sorting of panels by title pull request)
  • Arithmetic Quiz: [Fix] Fix behavior of selected answers (pull request)
  • Audio: [Fix] HFP-3776 Catch play promise error (pull request)
  • Audio: [Fix] HFP-3826 Add icon (pull request) was ignored and re-implemented
  • Audio: [Fix] Fix full player height for Chromium based browsers if fitToWrapper is set (pull request)
  • Audio: [Feature] Add Audio Recorder Extension (pull request)
  • Audio: [Fix] Remove flowplayer remnants (pull request)
  • Audio Recorder: [Fix] Add non-optional default parameters in constructor (pull request)
  • Audio Recorder: [Fix] Fix closing of AudioContext that is already closed (pull request)
  • Blanks: [Fix] HFP-3792 Fix trimming (pull request)
  • Blanks: [Feature] HFP-3862 Add completion/sucess flag to xAPI result (pull request)
  • Branching Question [Feature] HFP-3831 Add question media (pull request)
  • Branching Question (Editor) [Feature] HFP-3831 Add question media (pull request)
  • Branching Scenario [Fix] Fix label of proceed button (pull request)
  • Chart: [Fix] Fix HTML encoding in charts labels (HFP-2041) (pull request)
  • Column: [Feature] Remove Twitter user feed from content type options (pull request)
  • Column: [Fix] Set activity started only if Column is main content (pull request)
  • Column: [Fix] HFP-3673 Hide fullscreen button for video/DQ of all Columns (pull request)
  • Course Presentation: [Feature] Add scoring with pass grade and overall feedback (pull request)
  • Course Presentation: [Fix]_ HFP-3825 Do not send xAPI completed on resume (pull request)
  • Course Presentation: [Fix]_ HFP-3918 Fix small bugs with GoToSlide (pull request)
  • DialogCards: [Feature] Update InteractiveVideo integration (pull request) merge-conflict
  • Dialogcards: [Feature] Allow the author to set every page of a card individually: text and/or image and/or audio (pull request)
  • Dialogcards: [Feature] Allow to add videos to cards (pull request) merge-conflict
  • Documentation Tool: [Fix] Fix focus on resume (pull request)
  • Document Export Page: [Fix] HFP-3888 Fix buttons (a11y) (pull request)
  • Document Export Page: [Fix] HFP-4089 Fix category labels on preview (pull request)
  • Drag and Drop: [Feature] Add audio on drag and drop (pull request)
  • Drag and Drop: [Fix] Fix maximum score being higher than points achievable (pull request)
  • Drag and Drop: [Fix] Use user defined hover text for images in tasks (pull request 1) (pull request 2)
  • Drag and Drop: [Fix] HFP-3610 Do not change element position if already in dropzone ((H5P-3610)pull request)
  • Drag the Words: [Feature] Add option to add distractors (pull request)
  • Drag the Words: [Feature] Add option to always display solution texts below content (pull request)
  • Drag the Words: [Fix] Fix LaTeX support (pull request)
  • Drag the Words: [Fix] Add margin if dropzone container has tip (pull request)
  • Drag the Words: [Fix] JI-3673 Fix npm script for 'watch' (pull request)
  • Drag the Words: [Fix] HFP-3656 Exclude package-lock.json from h5p library (pull request)
  • Drag the Words: [Fix] HFP-3658 Improve a11y focus on "Check" and "Show Solutions" (pull request)
  • Drag the Words: [Fix] HFP-3797 Fix draggable styling incl. color contrast (pull request)
  • Drag the Words: [Feature] HFP-1816 Add support for alternative answers (pull request)
  • Drag the Words: [Fix] HFP-3847 Improve draggable handling accessibility (pull request)
  • Fill in the Blanks: [Feature] Add option to keep correct answers on retry (pull request)
  • Fill in the Blanks: [Feature] Improve performance (pull request)
  • Fill in the Blanks: [Fix] HFP-3655 Improve a11y focus on "Check" and "Show Solutions" (pull request)
  • Find the Hotspot: [Feature] Make wrappable in other content types (pull request)
  • Find the Hotspot: [Feature] Add default "correct" message (pull request)
  • Find the Hotspot: [Feature] Make incorrect hotspot reset task on click (pull request)
  • Flashcards: [Feature] Add option to randomize cards (pull request)
  • Flashcards: [Feature] Add option to use alternative solutions separated by | (pull request)
  • Flashcards: [Fix] Fix optional solution (HFP-2067) (pull request)
  • Flashcards: [Feature] Add optional audio button (pull request)
  • Flashcards: [Feature] Change xAPI verb from 'completed' to 'answered' (pull request)
  • Flashcards: [Fix] HFP-3818 remove enforced capitalization (pull request)
  • Flashcards: [Fix] HFP-3644 Update usage description in translation files (pull request)
  • Goals Assessment Page: [Fix] Improve accessibility: Add labels to goals list (pull request)
  • Goals Page: [Feature] HFP-3860 Add option for predefined goals(pull request)
  • GoToQuestion: [Fix] HFP-3919 Remove title attribute from button (pull request)
  • Image: [Fix] Fix alt and title attribute (pull request)
  • Image: [Feature] Allow alt tags with up to 1024 characters (pull request)
  • Image Choice: [Fix] HFP-3682 Improve getAnswerGiven (pull request)
  • Image Hotspots: [Fix] Fix non-HTML5-videos resizing (pull request)
  • Image Hotspots: [Feature] HFP-3873 Add customizing options for popups (pull request)
  • Image Hotspots: [Fix] HFP-4077 Improve CSS specificity (pull request)
  • Image Slider: [Feature] Add slideshow functionality (pull request)
  • Image Slider: [Feature] Add audio to slides (pull request)
  • Interactive Book: [Fix] Fix decrementing tasks left for non-task exercises (pull request)
  • Interactive Book: [Feature] HFP-3768 Add option to enable/disable "Restart" button (pull request)
  • Interactive Video: [Feature] Add option to disable submit button until video ended (pull request) merge-conflict
  • Interactive Video: [Feature] Allow to add custom audio tracks and sign language videos (pull request) rejected despite pre-qualification
  • Interactive Video: [Feature] Allow author to hide playback rate chooser (pull request)
  • Interactive Video: [Fix] Fix muted videos on mobile (pull request)
  • Interactive Video: [Fix] HFP-3646 Fix skipping message overflow (pull request)
  • Interactive Video: [Fix] Add package-lock.json to .h5pignore (pull request)
  • Interactive Video Editor: [Fix] Fix styling the non-form parts of the H5P Hub (pull-request)
  • IV Hotspot: [Fix] Fix label HTML encoding ([pull request] h5p/h5p-iv-hotspot#42)
  • Link: [Fix] Fix ampersand & being html encoded (pull request)
  • Mark the Words: [Fix] HFP-3661 Improve a11y focus on "Check" and "Show Solutions" (pull request)
  • Mark the Words: _[Fix]: HFP-3907 Fix answer given state always being true (pull request)
  • Matching: [Fix] Fix HTML encoding for l10n and pair texts (pull request)
  • Memory Game [Fix] HFP-3758 Fix row break application on resize (pull request)
  • Memory Game [Feature] HFP-3770 Add resetTask function (pull request)
  • Memory Game [Fix] HFP-3990 HFP-3990 Fix label instructions (pull request)
  • Multiple Choice: [Fix] HFP-3645 Fix calls to showSolutions or resetTask (pull request) pull request ignored, implemented differently
  • Question: [Fix] HFP-3654 Fix trailing "dot" for screen readers (pull request)
  • Question [Fix] Fix aria label of image expand/collapse button (pull request)
  • Question: [Fix] HFP-3824 Add fix for dialog on embedded fullscreen (pull request)
  • Question Set: [Fix] Fix intro image scaling if used in compound content types (pull request)
  • Questionnaire: [Fix] Exclude package-lock.json from h5p library (pull)
  • Shape: [Fix] Add missing dependency to H5PEditor.RadioGroup (pull request)
  • Single Choice Set: [Fix] Stop giving away correct answers in page source (pull request)
  • Single Choice Set: [Fix] HFP-4137 Add completion/success flags (pull request)
  • Speak the Words Set: [Feature] Implement question type contract (pull request)
  • Speak the Words Set: [Feature] Make includable in other content types (pull request)
  • Speak the Words Set: [Fix] Fix missing l10n string for finish button (pull request)
  • Standard Page: [Feature] HFP-3861 Add H5P.CheckboxList and H5P.DropdownField (pull request)
  • Summary: [Fix] Fix re-creating state for user responses (pull request)
  • Summary: [Fix] HFP-4137 Add completion/success flags (pull request)
  • Timeline: [Fix] H5P-3663 Add observer for attaching TimelineJS (pull request)
  • TrueFalse: [Fix] HFP-3821 Interpret checking answer as answer was given (pull request)
  • Video: [Feature] Add "save content state" for time (pull request) pull request ignored, implemented differently
  • Video: [Feature] Use undocumented no-cookie option for YouTube videos (pull request)
  • Video: [Feature] Allow to flag videos as sign language and support alternative videos for YT (pull request) rejected despite pre-qualification
  • Video: [Fix] Stop calling pause() before play promise resolved (pull request)
  • Video: [Fix] HFP-4037 Fix sanitization of visual parameters (pul request)
  • Video: [Feature] HFP-3684 Prevent playback rate spoofing (pull request)
  • Video [Fix] HFP-3868 Fix treating extras as mandatory (pull request)
  • Virtual Tour [Fix] HFP-3218 Stop setting focus on startup (pull request)

Issues for my existing stuff

I already use github issues to keep track of bugs, ideas, etc. for stuff that I have created. Please have a look there.

Content types

See https://www.olivertacke.de/labs/h5p-content-types/

Other things

  • H5PxAPIkatchu Plugin for WordPress to catch xAPI statements
  • H5P User Score Plugin for WordPress to display H5P scores in pages and posts
  • H5P Resize Pulse Plugin for WordPress to hackish-ly fix issues with H5P in lightboxes, tabs, or accordions

Ideas and todos

Replace 'title' attribute

In all content types, replace use of 'title' attribute where used with H5P.Tooltip or remove alltogether if not necessary.

Course Presentation

  • Transitions
  • Duration
  • Style (e. g. slide (as now), over black, nothing, ...)
  • Auto-progress: It was nice if one could set a period of time after which a course presentations jumps to the next slide automatically. Might be fun for petcha kutcha or similar things. I already had some code to do this, but it got lost :-/

H5P Paint

Just a content type to create some doodles and store them -- might be interesting to wrap images in xAPI ;-)

H5P Annotate

  • Container like content type that will put a timeline-ish comment section next to other content types for (collaborative) annotation, e.g. next to video or audio.
  • Allow to jump from comment to video/audio and vice-versa.
  • Would need some mechanism for sharing data among users in collaboration mode.

H5P Mandelbrot

Just for fun, a generator for fractals

H5P Swipe

A content type/(library for other content types?) to answer yes, no, foo or bar by swiping left, right, up or down

H5P GraphQuiz

I wrote that on a sheet of paper, but I cannot remember what I wanted to create named this way ;-) Might have been something like Capira offered: Teachers can draw a graph as a sample, and learners have to draw a graph that's similar enough. Could as well have been something such as https://quickdraw.withgoogle.com/

H5P OnSite

In order so support blended learning scenarios that use xAPI statements, an on-site tool might be useful. It it's simplest version it could just trigger an xAPI statement for "attended" when someone (within a particular group/range) clicks a button. A more sophisticated version could also offer some audience response system features.

Word cloud

Simple content type (with possibly complex variations for fun): Create a word cloud from a list of words similar to https://www.wordclouds.com/

IFTTT connection

Having an option to trigger IFTTT recipes based on xAPI statements could be real fun!

Question Set

Allow multi-tier-questions, cmp. https://h5p.org/node/204840

Code feedback

Is there a service with an open API that could be used to unit test code and return some results to H5P? ...

Variable system

There might be cases where you want to (semi-)dynamically create content instead of creating several instances.

  • Add variables, e. g. ${foo} that should not conflict with other texts.
  • Add json file with possible values for a variable to h5p scheme.
  • Big question: How to edit the files?

Make rewind in IV more flexible

  • Set time for rewinding

Content type for JSMOL

JSMOL seems to be a library for rendering molecules in HTML5. Creating an H5P content type that displays the corresponding files is probably simple. The more challenging, but also cooler part would be to implement a decent editor.

Text utilities

The text utilities library could also benefit from some syllable/word/sentence counting capabilities (+Flesch-Kincaid, ...), might be some extra library, too.

Add video option for flash cards

Currently, flash cards can contain images, but not videos. Having videos as well, could e.g. enable support for sign language.

Create general import interface (the name is not accurate, but an insider joke ;-))

There are many great sources for all kinds of input on the internet, but there's no way to utilize them to automatically create H5P content. It still needs to be done manually. Things to think about:

  • "all" that needs to be done is to transform input into a valid content.json file, basically mapping input fields to the right places.
  • semantics.json contains all the information about the structure of H5P content, needs to be taken into account for mapping input, because the structure may change. Field names are unique for each level - but may be nested and fields may contain arrays aka lists.
  • If there are no arrays/lists containing arrays/lists themselves (as in Essay for example with a list of words containing a list of alternatives), this could be represented using a table structure with each row containing the field name (and a certain data type implicitly) and columns covering list items if multiple items are possible. Groups could be represented as fieldname.groupitemname. The table structure could easily be made editable using common spreadsheet software.
  • Alternatively, create an editor that first parses the current semantics file, allows to define sources and take fields from then and where to map them to.

Create a set of learning elements for sign language

Cmp. https://morr.cc/anki-dgs/

Tic Tac Toe

Just some finger gymnastics :-)

setWhen

Similar to showWhen widget. Set a field property based on rules

H5P Questionnaire

Some new libraries that could be used

  • Media (Image, Audio, Video) as interstitial between pages
  • Some numeric input, could be a slider or something similar
  • Some numeric input, Likert scaled

Link-Widget

Check if link exists while it is entered

xAPI for DialogCards

No technical challenge, but modeling is tricky, especially for the repetition mode.

Spaced Repetition for FlashCards

  • same mechanics as for DialogCards
  • xAPI

Customization functions

  • Add some helper functions for semantics customization
    • e.g. find a semantics field by path/best effort
    • maybe even some WordPress admin settings

Enhance copyright view

  • Add machine readable license information, cmp. OERHoernchen

Content Slider

Content type that is similar to the Image Slider, but for content types -- which would be similar to Question Set, but is not supposed to take care of scoring. Could use the engine of ImageChoiceRounds.

alter_metadata hook

Metadata can already be altered using the alter_params hook, but only for subcontent. The meta data for the content type itself is not exposed as it doesn't reside in the params object. It was nice to be able to alter metadata, too, e.g. set a different default license, so it would not have to be set manually each time. An alter_metadata hook might help (could either only give access to the metadata object in extras or pass a reference to all metadata objects in extras and params). Alternatively, an alter_extras hook might help, too.

ToBeNamed

  • Tool to design a network of nodes that process numerical inputs and return numerical outputs.
  • Processing in nodes can be controlled by widgets (e. g. "sum" to add all inputs and return the sum as output.
  • Nodes can also be inputs (number input field, slider, ...)
  • Nodes can also be outputs (numbers, colors, sounds, ...)

WordPress-PlugIn

  • Add option to override the list of allowed content types in the settings (as in Drupal)
  • Add support for the Gutenberg editor
  • Add "view_h5p_contents" capability: If set, users should at least be able to view the list of H5P contents (including the buttons that should be visible for viewing results and for editing content based on the other capabilities).
  • Add contentId obfuscation: Use UUID instead of auto-incremented index
  • Improve tracking of results incl. support for https://github.com/h5p/h5p-php-report
  • Add option reset task for specific users
  • Add option to not reset the state when editing content
  • Improve content management capabilities (by replacing the list of contents with a different solution in the official plugin or by replacing it with a custom plugin - possible, done before :-))
    • Better filtering
    • Delete content(s) in list directly
    • ...

WP-H5P-Leaderboard

PlugIn that allows to add a leaderboard to a post based on the scores achieved for a H5P content type.

  • logged in users only based of H5P internal scores? Or use xAPI from xAPIkatchu, if available, for anonymous users, too?
  • setting for maximum number of scores displayed (paged possibly)
  • setting for anonymous users
  • for logged in users: have their position highlighted
  • modes: all scores vs. just next/previous user + score vs. gap to the top vs. ...
  • Show a leaderboard below a content type (show/hide on xAPI answered)
  • Different views: full vs. next one ahead / below
  • pages for long boards

WordPress-Plugin: Timed questions

  • As an author, I want to set a maximum time for H5P content in order to limit the amount of time that people can spend with the content.
    • Could call "showSolutions" via H5P question type contract
    • Could block editing by injecting an overlay (on same server)
    • Could show a timer (positioning?)
    • Optionally implement functions in H5P core (approval needed)

WP-H5P-Themer

  • Add options to style H5P content globally
    • GUI for common styles like JoubelUI
    • (file) template based fields for content types

WP-H5P-Resume

  • Plugin that optionally stores/restores the previous State in/from localStorage
  • Would work for users that are not logged in, too

Memory

  • Add videos -- but keep an eye on the editor, should probably be improved UX-wise.
  • Add text
  • Optionally enlarge images on click on card that was turned already
  • Check stylesheet for error

Arithmetic Quiz

Set number ranges, cmp. https://sommenprinter.nl/basisrekenenplusmin10.php

Dialog Cards

Improve retention by implementing something as described in http://pad.o-e-r.de/p/oercamp19-WS4-04

Core/Plugins

  • Per content type, allow to select users whose state should be reset.
  • In editor (plugin integration), add option to skip resetting after changing - can be useful if you simply changed a typo or something minor.

ChemJax

Look into supporting ChemJax (similar to MathJax)

Linked List Widget

Editor widget for lists that knows the current entity's index and can link to other list entities using select field that only contains existing nodes and updates the fields on changes (e. g. update the links when a node in between has been removed).

Label exercise

Have a background image and drag text input fields onto the image in order to have an exercise for labeling; could also feature strokes to link to labels next to the image

Dice Roller

Just a simple die/dice content type:

  • Fullscreen (useful for smartphones)
  • Number of facets
  • Number of dice
  • Color of dice
  • Color of dice facet
  • Custom images (but still numbers internally)
  • Trigger result via external dispatcher, so other content types can work with the result

Image-Widget

  • Add option to include link to image.

Metadata retrieval

Look into ways to retrieve metadata from media and use them in H5P directly.

Circuit Simulator content type

Why not have a (simple) wrapper for https://github.com/kazuhikoarase/simcirjs?

Margin widget for images

Widget that allows to add a margin around images (particularly useful for Drag and Drop)

  • margin top, right, bottom and left
  • background color for the margin
  • preview of the proportions

Magnifying option for H5P.Image

Add an option to magnify parts of an image similar what's common in web shops.

Taboo

Content Type for the (reversed) Taboo game.

  • Like dialog cards, add cards with taboo words
  • Have a reversed mode where words must be included and need to be checked

DragQuestion

  • Add option to keep correct items in place.
  • Add white space next to image for putting draggables there

Whats5P ;-)

Content type that's similar to a Question Set, but that has a vertical layout resembling a chat window including texts in between exercises.

Categorizator

Compound Content Type that allows to add content types (media), attach tags to them and then allow to filter them for the tags, etc.

General Feedback

Allow links, could facilitate paths

Multiple Choice

Option for "neither right nor wrong"

Audio

  • Add text2speech option (text/language/params)
  • Add Audio Recorder?

Content Type: Spreadsheet Question

Pretty straightforward: have a table with some filled/unfilled cells - and the latter to be filled

Drag the Words

Allow alternatives, keep xAPI extension/correct responses pattern in mind

Likert widget

Scuh

Point-and-Click-Adventure-like (probably too much effort for teachers to create those)

  • Rooms (image background with hotspots + NPCs)
  • Inventory (items) actions = use item + (item / hotspot / NPC)

Spot the mistakes

The teacher can write a text including deliberately misspelled words/wrong punctuation marks. The student needs to spot the mistakes, mark and correct them.

Content Type: Visualization

Wrapper for https://www.chartjs.org to have multiple chart options in one content type.

(Collaborative) Post-it organizer

Could be something like GoogleKeep, but open (Multiplayer API needed)

DialogCards

Support other algorithms such as SM2 in Anki or SuperMemo.

Multiple Choice

  • Make : escapable as \:

Content type for group finding

With the Multiplayer API: Have a tool where the teacher can define groups and rules and students can assign themselves to, be assigned to, etc.

Fill in the Blanks

  • Make : escapable as \:
  • Make / escapable as \/
  • Make * escapable as \*

Drag and Drop

  • Add Shapes

Repetitor

New content type that works like blending QuestionSet and DialogCards:

MathDisplay

Add KaTeX support

Image

Add option to use link instead of uploading image

Image Hotspots: individual color

Content Type: Text correction/Work with Text

Spot mistakes in a text and correct them. Could become a feature of Highlight the Words (the code is ugly) or a spin-off.

Interactive Video: Countdown

  • As an author, I want to be able to add a countdown to interactions that will automatically check the task/close the interaction overlay when the timer reaches zero.
    • Check vs close (disable retry if check or it doesn't make much sense)
    • Visual timer vs. hidden timer (where to put the timer?)

H5P Interactive Video

Fix size of popups that start as a button, not as a poster

Scratchy (Somebody else already on it)

Copyright View

Make it look nice :-) See https://h5ptechnology.atlassian.net/browse/HFP-1902

Typing Trainer

Content type to train typing, obviously.

  • Research research on best methods ...

Yet Another Image Gallery :-D

No comment

Map Chart Generator

Something similar to https://mapchart.net/

H5P.Credits

Content type for generating credits similar to movie credits.

  • sections with HTML fields
  • optional background music
  • speed setting
  • visual theming options

Shuffled tile puzzle

  • Just for fun: one of the puzzles where one tile is missing, so you can move one tile at a time to an adjacent position in order to complete the puzzle.

H5P.Checklist

Simple checklist app that stores the state.

  • As an author, I can set predefined items on a checklist in order to allow users to check/uncheck them.
  • As an author, I can decide whether a user can edit or remove predefined items.
  • As an author, I can decide whether a user can add/remove own items to the list.
  • As a user, I can check/uncheck items on the list.
  • As a user, I can sort items on the list.
  • As a user, I can actively save the list state (in addition to common H5P state management).

Reading Trainer

Cmp. https://t.co/1rBAGXgRU1 but without the prephase that would require machine learning support or a free and open service to be used. Could actually be done by optionally amending Speak the Words.

MiniCourse

Help to make ready for release.

Tamagochi Teacher

  • Allow authors to define a pool of exercises.
  • Users can earn points for completing exercises.
  • Points can be used to take care of a tamagochi like avatar, e. g. feeding, playing, etc.
  • Will store the state and users will need to check the tamagochi regularly
  • Have a max points per day limit, so users are required to come back regularly

Piano

Simple content type that allows to play a piano :-)

  • Externally:
    • Would be nice: 25 keys (~2 octaves), 15 white, 10 black (playable with mouse, yuks)
    • Realistic: 12 white, 8 black - that can be played with keyboard keys.
  • Internally: Could be all piano keys
  • Support for MIDI devices
  • Allow to set octave
  • Allow to define samples and switch between them.
  • Metronome feature
  • Volume control
  • Cmp. https://recursivearts.com/virtual-piano/ or https://virtualpiano.eu/

Rythm composer

Something like a stripped down digital version of a Roland TR-909 ;-)

  • Allow to have a 16 slot sequence
  • Assign samples to slots
  • Flexible BPM
  • Low pan
  • High pan
  • "Infinite" rows of sequences or maybe just 4?
  • Volume control per sequence
  • Global volume control
  • Cmp. https://hitgroove.com/

Looper

Something like a stripped down digital version of a Boss RC-505 ;-)

Drum Pad

Music Foo

  • Allow to combine "Piano", "Rythm Composer", "Looper" and "Drum Pad"
  • Potentially arrange layout
  • Potentially even have more elements to assign to and to control others (volume control, ...)

Piano Question

New content type, basically a multiple choice question or sequence of questions, but using a piano keyboard as input. In extreme: "Piano Hero" :-D

Content checker

Tool to check H5P contents for missing mandatory fields, metadata, etc.

Automated user flow test environment

Should be done by H5P Group, but it's quite simple to set up a basic environment for the H5P CLI tool with Playwright or Selenium or ...

Simple timeline

Cmp. bottom of https://h5p.org/roadmap (quite nice, but not a content type)

Long Reads

A content type that allows to easily create "Long Reads" such as https://www.bbc.co.uk/news/resources/idt-sh/war_in_the_desert

Duolingo clone

There are already content types that can replace Duolingo exercises, e.g. Dictation and Drag the Words. Close the gaps ...

Documentation Tool: Checklist module

  • As an author, I can add a predefined list of items that users can check off
  • As an author, I can decide whether the checklist should be accompanied by a progress bar
  • As an author, I can decide whether the user is allowed to handle extra items
  • As a user, I can check off items from a list
  • As a user, I can add extra items (if allowed to handle extra items)
  • As a user, I can remove extra items (if allowed to handle extra items)
  • Needs to support resume (store all items (incl. label for extra items) and checked state)

Content type for placement testing

Could be an amendmend of QuestionSet, but there may be too many restrictions. So ...

  • Allow to use different subcontents.
  • Collect different scores based on the outcome of subcontents, so for each subcontent:
    • "As an author, I can assign different categories to a subcontent."
    • "As an author, I can define what score range for the subcontent leads to what score for the category."
  • Have result similar to personality quiz based on the total category (=personality) scores

Click the Words

Content type similar to Drag the Words, but instead of dragging words to dropzones, clicking on a word would move it to the next available slot or back to its original position if it already is inside a slot.

Persona

Content type that allows to add an image next to a speech bubble where the speech bubble can contain text and audio.

Storyteller

Content type set that allows to add "Persona", "Image", "Video", "Text".

  • Can have background music for the whole set and for each subcontent.
  • Allows automated progression
  • Allows fullscreen
  • Allows audio toggling

Content Reveal

Allow to add a trigger warning or similar before actually viewing content.

Point-to-point drawing

Classic point-to-point drawing puzzle

  • Optionally assign words (instead of numbers) to points, so students need to construct sentences
  • When a "sequence" is done, do something nice visually

H5Pacman

While the H5P Hub is fine for installing and updating content types, there's room for improvement to package management:

  • Different places to do content type management
    • Installing can be done via the H5P Hub or the H5P library settings page of the H5P integration.
    • Updating content types can be done via the H5P Hub only.
    • Deleting content types can be done via the H5P library settings page of the H5P integration only.
  • Bugs (or questionable implementation)
    • The H5P integration for moodle does not allow to delete libraries.
    • Circular dependencies are not resolved, so it may never be possible to delete content types, even though they are not used anymore (despite a 3 year old pull request, https://h5ptechnology.atlassian.net/browse/HFP-3065).
    • Moodle's custom H5P integration in moodle's core allows to delete all libraries regardless of whether they are still required or not.
  • Lack of features
    • Moodle's custom H5P integration has an auto-update feature that allows to automatically fetch and install content type library updates. Some admins hate (as they don't like to let others' code be deployed automatically), others love it. Either way, no other H5P integration features this.
    • h5p.org is the only fixed content type source, so it's very inconvenient to keep track of updates to other creators' content types - and hard to discover new content types in the first place.

Potentially to the rescue: H5Pacman, a package manager for H5P content types. Compare the idea to package managers known in the Linux world.

  • Encapsulated core functionality (in PHP)
    • Can be reused in different H5P integrations (the latter basically only need to implement the bridge to the database and the file system), so it should be quite simple to create a plugin for the PHP based platforms that offer H5P support (moodle, WordPress, Drupal, EdLib, ILIAS, Stud.IP).
    • Ports to node.js (or other programming languages) for supporting Lumi are possible, of course.
  • Keep content type management in one place (install, update, delete).
  • Allow to add/remove other package sources than h5p.org and can handle all of them
    • Simplest case: Use URLs to alternative h5p content type servers
    • allow to configure auto-update/priority per source, etc.
    • Requires a content type server that
      • implements the (very simple) API that h5p.org uses together with the H5P Hub.
      • supports release management of content types (but could use a simple file system based approach to get started).
      • would not be "bound" to be created in PHP
  • Allow proper deletion of libraries (if possible only vs. enforced with warning, take care of circular dependencies)
  • Extra functionality
    • Auto-update
    • Revert to older conent type versions (can break existing content though!)

Spyhole content type

Content type that allows the author to upload an image. For the user, the image is hidden and parts of it will sequentially be uncovered - either on click or timer based. Optionally a correct solution can be defined and scores can be awarded when the correct solution is given, based on how fast the answer was given. Also optionally, the author can define the sequence of image parts that will be revealed, but that would probably require a visual editor and thus more time to develop. Could be a two-step process. Could be used for the "spyhole method" where students only see a part of the image and should interpret it, and re-evaluate after they see more of the image. Could also be used as a game.

Forker

Server-side tool (with client-side frontend) to modify content type parameters to match a forked version. Would need to: 0) Do a sanitization check, e.g. check if versions to upgrade from is right, etc.

  1. read h5p.json and content.json
  2. Update/replace entries in h5p.json
  3. Run an upgrade-script on content.json if required
  4. write h5p.json and content.json
  5. Return the new file.

DONE via separate content type3D model support

Add 3D model support to H5P.Image and the core widget using an appropriate library.

DONE "GameMap"

Compound Content Type similar to Image Hotspots, but ...

  • allow any kind of content type
  • allow to track progress
  • allow to define prerequisites for enabling hotspots
  • display the current "position"
  • think of it as the map in Super Mario World

DONE Kewar: Add "description" field

Add "description" field to QR code that can be displayed along with the QRCode

DONE Datepicker widget for editor

Says it all :-)

DONE as Jigsaw Puzzle Puzzle Game

- Upload an image, define the dimensions, and let people puzzle

DONE as separate content type Add images as answer option to multiple choice?

Use images instead of text for answers. Might need some UX expertise

DONE H5P Bingo

- Content type for playing bingo at boring conferences -- create your bingo sheet, share, enjoy ;-) - Enter pool of bingo words, content type will randomly generate an x by x bingo sheet

DONE Add setAudio function to H5P Question (already in prototype state)

H5P Question is a library that offers common functionality to question-like content types. It already features setImage and setVideo for easily including an image or a video for the content types introduction, but setAudio is missing.

DONE Add video option to dialog cards

Currently, dialog cards can contain images, but not videos. Having videos as well, could e.g. enable support for sign language.

H5P.PDF

Simple PDF-Viewer content type, could be based on PDF.js. Rather not to prevent even more PDF overuse.

DONE DialogCards

- cmp. https://www.indiegogo.com/projects/unlock-spaced-repetition-for-h5p-dialog-cards/x/824080 - Save Content State - Reset button for repetition mode to start over again

DONE BY SOMEONE ELSE Hangman

Self-explanatory. Maybe score + timing would be nice.

DONE Auto-Progression for Image Slider

- Option to progress to the next image automatically after a given time period (should be reset after interaction?)

  • Option to jump from last to first/first to last image instead of stopping (normal and automatic)

DONE Support Cornell Notes

Implement support for Cornell Notes, https://m.wikihow.com/Take-Cornell-Notes

DONE by serettig in Advanced Fill in the Blanks Select for Fill in the blanks

Instead of free text blanks, fill in the blanks might also be used to optionally present a select input field with different options

DONE QuestionSet

Check ImageScaling for intro inside column

DONE Bugfix: Text size in DialogCards inside Course Presentations

Cannot reproduce

DONE Optionally store state in cookies/localStorage

There's a save content state option that stores the state of a content type if the user is logged in. Might be useful to optionally use cookies (web storage API), so this feature could work for anonymous users, too. https://h5p.org/comment/14994#comment-14994

DONE WP-H5P-Resize-Hack

Simple H5P-Plugin for WordPress that continuously triggers a resize event on the window.

DONE Content Type: Paragraph Writing Structure Strips

- Have multiple text input fields and a "strip" next to it indicating the suggested length of a paragraph in relation to other paragraphs, cmp. https://www.tes.com/teaching-resource/paragraph-writing-structure-strips-for-gcse-english-literature-aqa-11821384 or https://www.pinterest.de/pin/463307880411263982/ or https://jivespin.wordpress.com/2017/07/20/structure-strips-stripping-literacy-to-the-basics/ or https://doingsocialstudies.com/2018/02/22/structure-strips-seriously-where-have-you-been-hiding/ - Allow to set the weight of each paragraph - Allow to set the color of a paragraph strip - Allow to set some slack. e.g +/- 10 % of characters or words - Allow to customize feedback messages if a paragraph subceeds/exceeds - Save content state for revision, cmp. Cornell Notes

DONE ImageHotspots

Add Audio

DONE Transcript library

A library that can be used to use (not create) transcripts with audio content or video content.

  • Show transcript of an audio file/video file (based on .vtt captions or similar)
  • Show currently used text phrase as audio/video progresses (on "caption" update, trigger with time as data)
  • Jump to position in audio/video on clicking on the text (on click, trigger with time as data)

DONE Tabs

Like Accordion, but using Tabs

DONE Timer Content Type

Just a simple stop watch / countdown timer content type.

DONE Timer

I have already created a general timer library for H5P, quite versatile, but I do not even dare to look at that old piece of code ;-) Maybe I'll write something new, tiny and focussed and ready for adding a timer (maybe as an overlay) to any H5P library that needs one. Could also go into H5P-Question.

DONE as new content typeMultiple-Choice

- Add discrete option mode, cmp. https://h5p.org/node/204855 - Add confidence weighting mode

DONE as new content type Interactive Video: Chapter Marks

YouTube added a chapter feature by using the description for marks. Check if it is possible to retrieve those and use them to build chapters in H5P automatically.

DONE 3D model display

It might be an interesting option to have a "3D image" content type that takes a standard 3D model file as input (research: what's standard?) and just displays it with some basic interaction options such as rotating or zooming. I bet there's already an open implementation for that (based on ThreeJS) that could be wrapped and used in H5P.

About

This is just a list where I publicly drop and re-arrange my ideas and todos for H5P stuff

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published