Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-80690

Create a Next & Prev API for seamless navigation across sections and activities

XMLWordPrintable

      Currently there is potentially two disjointed sets of navigation where in some cases the course format add navigation to the next and previous activity and in other places, depending on the activity module it adds its own navigation. These are quite often at odds which each other and result in either a confusing clutter of redundant links of multiple calls to action. Or in other cases you end up in a navigational dead end with no obvious 'next' place to go.

      In MDL-75683 and in previous trackers the next and prev links added at the course format level have been added and removed and this is a polarizing topic. I believe the fundamental root cause of this is that some course authors think that Moodle should manage the navigation and user flow (and it should) and others are working around Moodle's deficiencies and manually adding their own navigation or relying on a theme or format.

      I think there can be a new API which bridges the gap so we get the best of both worlds and make it more consistent and easier for students to be informed what is next and to go there. Every page should have a consistent call to action CTA.

      Proposing new API

      • Each activity can declare what the 'next' page is which should be the primary call to action at the bottom of the page. This can be a page internal to itself, or it can defer to the course format to define what the next page is.
      • There is both a php and javascript API for declaring what is next
      • 'Next' consists of both a name and a url, or a JS event and title / alt text
      • In most cases there is a single Next CTA but in edge cases there may be more than one.
      • There MAY also be a Previous
      • How it is rendered it up to core not the activity so it is consistent
      • What is next can be conditional on the page state and then enabled once something has been done
      • Each format uses the same api, so for instance a course section page could have a next CTA into the first module in that section. The last module in a section could have a next link which takes you to the next section in the course rather than the next activity in the next section. These decisions are up to the course format and its settings.
      • There should also be an extra optional interaction with the completion API to allow modules to be completed only when the Next page is deferred to the course format and it has been clicked, rather that just a page view. See the mod_page example below but any activity can opt into this. Navigation to next to a page inside the module, eg from one book page to another would not affect completion 
      • When the module defers to core and the course format to provide the next action, the button text show could be 'Next' or 'Next: Quiz activity' or 'Next: Topic 4 quiz' etc and is easily customizable via lang strings without code changes

      Examples

      mod_page

      Current state:

      • When you get to the bottom of a long page there is no clear CTA.
      • The 'Mark as done' button is NOT at the bottom which is not where the user is when they need it
      • There is no way to navigate to the next activity without going back to the side menu which is awkward, especially on mobile

      Proposed state:

      1. They are not prompted to mark it as done before they have read the content
      2. The user reads the long page and scrolls down to the bottom where there is a CTA
      3. Completion options:
        1. If completion is off then there is a primary CTA of 'Next'
        2. If completion is on and set to 'Students must manually mark the activity as done'
          1. At the bottom the primary CTA is 'Mark as done'
          2. There is a secondary CTA which is 'Next' and either disabled or given lower visual importance
          3. After clicking Mark as done then the Next button is highlighted as the primary CTA.
          4. If the page has already been completed then it is primary by default, and the completion can be undone reversing the primary focus and styling
        3. There should be a new option roughly: 'Students must progress to the Next activity'
          1. As this option is better UX than either of the completion options above it should be shown as a preference to guide course editors towards it
          2. At the bottom is a single integrated primary CTA is 'Next'
          3. Completion is set automatically when they click on it which is a much more natural way of recording completion rather than merely on page view when they may not have actually read the page yet and disengaged 
          4. If they have previously clicked Next and been marked as complete they can come back an undo it in a similar way to manual completion
      4. mod_page declares that going 'back' is ok, so the previous link to the previous module could also be rendered

      mod_book

      Current state: 

      • When you start a book you get custom navigation to the prev and next pages which is inconsistent
      • On the last page of the book you don't get any navigation to the activity

      Proposed state:

      • At the bottom of each page links to the next book page
      • At the bottom of the last page links to the next activity

      mod_lesson 

      Current state:

      • Inside the lesson you get clear CTA's around what is the next internal page, but then you get to the end of the lesson and you get a navigational dead end

      Proposed state:

      • Lesson declared the various next states for each page within the lesson
      • Lesson declares that going 'back' probably doesn't make sense in most cases so no prev link is rendered
      • At the end of the lesson the next CTA is deferred back to the course format so it guides you into the next activity.

      H5P / scorm

      Proposed state:

      • While the activity is in progress you either do not get buttons to go to next or you do but they are not primary until the activity is complete and then the next dynamically becomes the primary CTA 

      mod_quiz

      Proposed state:

      • Similar to lesson when you get to the end of the quiz you are often lost with no clear navigation. It would defer to the course format and guide you onwards

            Unassigned Unassigned
            brendanheywood Brendan Heywood
            Votes:
            15 Vote for this issue
            Watchers:
            21 Start watching this issue

              Created:
              Updated:

                Error rendering 'clockify-timesheets-time-tracking-reports:timer-sidebar'. Please contact your Jira administrators.