A widget in the McGraw-Hill Education (MHE) Digital Learning Environment (DLE) is an HTML/CSS/JavaScript interactive element, potentially configurable by content authors, and displayable to end-users. Widgets may be categorized as “Templates,” “Tools,” “Interactives,” or by other descriptors, but are all intended to provide end users (students and teachers) with robust digital content experiences.
Widgets are incorporated into products using "Inkling Habitat," a third-party web based HTML WYSIWYG authoring environment used for creating content. Authored content is ultimately published out of the Inkling Habitat environment and presented to end-users in a proprietary HTML ePub player. Conceptually, the widget operates in a "container," which in practice means that it's in an iframe, embedded within and surrounded by additional HTML content, and the container is responsible for implementing the APIs by which the widget communicates with the world outside of its iframe.
Most widgets have two "modes": an ‘authoring’ mode which is activated within Habitat and is where a content creator can configure the widget, changing various parameters before saving, and a ‘play/viewing’ mode, which provides the configured, or authored, version to the end-user to interact with. While the viewing mode is a necessity for all widgets, the authoring mode is only required if the widget is configurable.
Creation of such a widget requires laying out your code according to a well-defined hierarchy, and mediating external communications from the widget and its container through a set of API.
Although there are some recognized types of widgets, their functionality and definition are not so precise as to eliminate any and all possible overlapping of features and use cases. Designers and developers are advised not to get stuck on the type of asset being created, but to focus on creating a valuable end user product. The widget type should be used simply as a guideline for starting the design process and be selected based on the best apparent fit.
Templates are one potential type of widget. They are expected to be highly configurable assets that focus on an interaction type or information structure, but not on a particular content area; they are generally “content agnostic.” Templates are configured into specific activities, or iterations, through an authoring process that adds the specific content. An author might use a drag-and-drop template to configure an activity for sorting vowels and consonants, or one sequencing historic events. Configurations might allow for activities to be automatically evaluated or not.
Tools differ as a widget type in that they are expected to address a specific content need and provide interactions related to the conceptual understanding or manipulation of that content. An example of a tool might be a Math probability tool which allows users to select a set of objects and repeatedly test the probability of selecting any single object at random. There may be some configurability by an author to limit the range of objects or events, or such customization might not be necessary.
Other widgets might be described as Interactives, Games, Infographics, Virtual Labs, etc., each with some specific differences but probably also some overlapping functionality, features or uses.
Despite the type or intended use case, there are some requirements that all widgets must meet.