Skip navigation
All Places > System Administrator Community > Blog

UPDATE: The Google Chrome team is postponing the changes until version 80.   There isn't a release date for version 80 yet but based on their release cadence, it could be available in January. 


On October 22, 2019, Google Chrome will release version 78 of Chrome to users which removes key functions that may impact a user’s ability to complete SCORM-related Assignments and Assessments.  Google Chrome 78 (and later versions) may block the completion of the course when users exit the course by closing or navigating away from the window containing the SCORM player. Relevant details such as completion, success, score, and duration would remain in an incomplete status even though the user completed the course.


Rustici has provided a patch that uses other mechanisms that are not blocked in Google Chrome version 78 (or later versions).  Blackboard is quickly working to include the fix in a Learn SaaS release as well as Cumulative Updates for Learn 9.1, Q2 2019, Q4 2018 and Q2 2018.  In the meantime, Rustici has provided a workaround for end users.


Users can disable the new behavior in Google Chrome version 78.  Workaround details provided from Rustici include:


1. Chrome has a flag that can be modified to change this behavior in a user's browser. The user can navigate to chrome://flags/#allow-sync-xhr-in-page-dismissal in the browser and enable it.
     Note: in Chrome 77, there is a preview setting #enable-forbid-sync-xhr-in-page-dismissal that can be used to test the behavior before the release goes out.


2. This flag can also be set using the AllowSyncXHRInPageDismissal enterprise policy flag, if that's something being used by your organization.


3. There is also a temporary opt-out available via GoogleOrigin Trial "Allow Sync XHR In Page Dismissal". This feature allows you to register your domain for a token that you can then include in a header when serving the player files, and it will trigger Chrome to enable the synchronous requests during page dismissal. More details about enabling and using this method are outlined in this Google page.


This workaround is planned to be available until Google Chrome version 82 which is planned to be released in April 2020.


You can read more about the Chrome 78 issue on Rustic’s knowledge base page.

guardLogin pages are important.  There are many UX principles and security regulations that apply to them.  Among many good ideas, we want login pages to be aesthetically appealing and guard the main doors to the system.  It is best when users type in credentials to the same login page across the organization (such as in Shibboleth technology) instead of retyping the same credentials on multiple login pages (such as LDAP and others).  This moves many organizations to use SAML/Shibboleth as web authentication technology.  In Blackboard Learn this is called third-party account.


The problem:

If an administrator configured SAML/Shibboleth for Blackboard Learn, an authentication URL is created automatically on the default login page (sample default page URL:  However, the Username and Password prompts remain.  On a custom login page such prompts can be removed and direct link can be used (sample direct link URL:  Since Shibboleth requires web interfaces, the Blackboard mobile app must be forced to the web with "Web Login".  Unfortunately, after password is accepted users are forwarded to the main Institutional Page location.  In iOS the mobile app doesn't recognize it as a successful login and integrations, such as Panopto SSO, are not correctly redirected to their destination.



As long as you provide the default login page in the Blackboard mobile services B2 "change mobile login url", students will be able to use the default prompts or use the drop-down selection to Shibboleth on the default page with this design:


default prompts



So what's the problem with the workaround?

We would like the custom page to work for the mobile apps and third-party integrations without default login prompt.  This keeps the institutional branding consistent.  Also, if the organization uses only Shibboleth the default black (above picture) Username and Password prompts will not work.  It is necessary to use the link in the bottom drop-down.  The prompts will work with LDAP or internal database authentication, but these may be disabled.  As a security principle, we don't want users to put username or password into any other prompts but the main organizational Shibboleth prompts.  We would also like to understand the root problem. 


As a side note, the name Shibboleth has an interesting story:

Shibboleth - Wikipedia 


Let's get started.  The customization of the Blackboard login page provides important benefits to student engagement and system adaption.  Much can be communicated and advertised. Nathan Cobb wrote up a great piece on how to create a custom login page to Blackboard Learn: Show us your ... Learn Ultra Login Page .   


The basic design is to use the a starter file with about 100 lines of code that begin like this:


<!-- This login.jsp file is tagged with comments identifying sections for easy editing -->

<!-- This section below calls various servlets from the Learn environment and other things you don't want to touch. Do not delete anything in this section -->
<%@ include file="/webapis/ui/doctype.jspf" %>
<%@ page import="blackboard.servlet.util.CourseCatalogUtil" %>



You can download the full starter file here: 


This is  a great start, but it includes design elements, such as credential prompts, which are not wanted in Shibboleth-only approach.  What if you don't want to display the Username and Password prompts that require either local database authentication or LDAP?  Again, if we're using Shibboleth, the internal prompts will break our login process.


So, out of necessity, some administrators created a custom login page with a simple link to the third-party authentication URL.  This link can be extracted from the default login page drop-down.  Here is a simplified code of a custom page that works and uses Shibboleth only:


<a id="loginurl"

Sign In</a>



The code above is a minimalistic approach, but will work perfectly for logging into Blackboard Learn in a browser.  It will process Shibboleth prompts, and redirect back into /ultra home.


However, at this point the mobile app, which has to be switched to forced web login for Shibolleth prompts, will not work.  Support sometimes applied this known issue to tickets reporting the behavior:

MOBI-9602 - iOS 4.4 Doesn't Poll to Native View after External Authentication Until a User Action - Persisting Behavior of MOBI-9247

Article #000050914 - iOS Doesn't Establish Native Session View after External Authentication Until a User Action  


The problem is not with iOS or the mobile app.  The problem also persists in any external single signon application such as Panopto.  So, the functional workaround is to force the mobile app to the default login page and enable at least LDAP to get the prompts workings.


The root cause of this behavior is the redirectUrl and new_loc URL parameters.  If you trace the clicks, the login page from the mobile app or Panopto includes a return URL to successfully receive the authenticated session.  Ok, so there is a JS that can be added to the login page to capture new_loc and forward properly.  After writing that code, it became obvious that there is a better way, more maintainable and sustainable across future upgrades.


The successful trick is to display the Blackboard generated login prompts with the custom drop-down, then hide them, then assign back in HTML the properly formatted custom login URL.


This is how it works:


/* onLoad event on body tag let's us wait for all HTML elements
to be loaded before we detect the custom authentication URL */
<body onLoad="setLogin()">

/* include any HTML/CSS/JS code you have for your custom page.
The only important element below is id="loginurl",
which will let you replace the href dynamically.
The link can be anywhere on your custom login page. */
<a id="loginurl"
href="" >

Sign In</a>

/* this section will build the hidden login prompts with
correctly structured third-party URL.
We are going to pull the first row from the drop-down,
so the first URL in case you have multiple. */

<%@ taglib uri="/bbNG" prefix="bbNG" %>
<%@ taglib uri="/loginUI" prefix="loginUI" %>

<div id="login-form" class="login-form"style="display: none">
<loginUI:loginForm />

<script lang="JavaScript">
function setLogin() {
var a = document.getElementById("loginRedirectProviderList");
var b = a.getElementsByTagName('a');





This approach will fix the login process to the mobile app, SSO to Panopto, and ensure that Shibboleth authentication prompts are presented at the login page and all integrations entry points.


This article applies to Blackboard Learn clients who are not using LDAP, local database authentication, but instead try using SAML/Shibboleth by itself.

Thank you to everyone who has expressed interest so far in next year's Technical Preview.  I've have captured everyone's name who have emailed me directly, through Support or posted a note in the June update.  We'll have an official sign-up sheet as we get closer to the program as well.  


Since we initially shared the news at BbWorld regarding the direction of the replacement for New Box View, all the feedback so far has been overwhelmingly positive The new Inline Assignment Grading Tool will automatically provide a lot of the functionality we’ve discussed in prior posts and specifically the list that I shared in the June update The new tool will encompass the existing functionality faculty are accustomed to today but will also provide new functionality for marking a submission.  Over the last several weeks, our development team has been hard at work to add new improvements and customizations to the tool.  Today, I will be highlighting several of the new changes you can expect to see when it becomes generally available next year, and I will be back at the Admin Office Hours on September 17th 12 PM EDT to review further and gather feedback. 


Before we jump into several of the new features, I wanted to recap what the UI looked like when we debuted at BbWorld Not only do graders have access to a Sidebar Summary view, there are multiple color selections, shapes and sizing options to choose from when providing feedback.  All annotation can be easily edited, moved and deleted as well.  Also, back by popular request, the print feature.  Users will have access to either download or print with the annotations included.   

 Inline Assignment Grading functionality



Since BbWorld, we've modified icons and dropdown menus to be more in line with the current Ultra theme and have made enhancements to the annotation capabilities.     

  Inline Assignment Grading Icon Update



One area of improvement is how the highlighting features are displayed.  Users can click and drag to highlight as well as use a freehand highlighting tool.  We have opted to rename the freehand highlighting tool to Brush, and the Highlighter has been moved out of the dropdown menu. Users will still be able to access it from the pop-up menu.  


 Inline Assignment Grading Highlighting Changes


In addition to being able to highlight with a comment, graders will also be able to add a note when striking through and underlining (including squiggly underline) text. 


Inline Assignment Grading Note functionality with underline and squiggly underline



One of my other new favorite features is called Duplicate.  This allows you to re-use an existing text box, line, arrow, and any of the geometric shapes.  As we work towards providing graders with a re-usable comment bank, this is an interim step to quickly and easily insert the same comment multiple times.  

  Inline Assignment Grading duplicate functionality



We are continuing to make changes to the tool, and I am excited to continue sharing those with you over the coming months.   

Let's share some banner pictures for the Base Navigation Institutional Pages.  Recently the banner dimensions changed, and there is a trick to having the photo action being in the center axis of the picture.  While Learn does resize and show the full picture on smaller devices, it is elongated on most laptop screens. So, most photos can be turned into the new banner files by cropping the height and bringing key photo features to the horizontal axis.


It is possible that in the future the banner will further change.  We would like to update the banner occasionally, and wonder if as a community we can share banners.  Some banners may be school specific, but many pictures today are in public domain or schools are ok with sharing content.  If you can, upload a zip file with your pictures or individual pictures.


Just FYI, this is what documentation states about banners:… 


the banner image should be at least 2000 pixels wide.  Because screen size width varies on wider screens, the banner image crops the top and bottom of the image as the content area gets wider


I personally think that changing the banner keeps the system fresh, it creates a perception that someone is taking care of it, and that many stories can be told about diversity of the organization.


One system with freely available artwork is 



couple talking


In this photo two changes were made: the bottom was cropped and picture was flipped. Previously there was more content at the bottom of the photo.  Now, the face will show up in the center of the new shorter banner.


As another idea, here is the banner from CourseSites.  Notice the left area that allows org logo and a caption.

coursesites banner


Here is a start for the gallery: 

Welcome to the new Blackboard!

Now that you're here, tell us how you'd like to be notified of events in your courses.


So, you enabled Base Nav in your Learn system and the first thing you get feedback on are notifications.  As in other LMS systems, the approach in Learn is student-centric to over-communicate, notify of everything, engage, until the user chooses to mute communication channels.  This makes sense and my post is not about disputing the approach.

However, the notification settings need to be right there, on the main page, preferably as a to-do list.


One way to improve student and faculty experience with notifications in Learn is to provide a reminder right after the login process.  This can be done in Base Nav by employing a custom LTI tool that points to the notification settings in the user profile.  It looks like this:


lti tool


This tool remains also as a system tool in Tools area in addition to the Custom Content module on the Institutional Page.  Once you click the link it goes to this screen directly:




The user can manipulate any of the three areas of settings: stream, email, or push.


The LTI placement of system type would have this URL (make sure to replace "myschool" and follow the LTI tutorial if this is your first custom tool): 



There is a glitch to the setup, which hopefully we can workout as a community.  Once the settings are saved and the notifications window closes, you cannot re-select stream, email, or push.  This is probably because the URL opens the Base Nav the second time.  However, once you close the second window, everything works as expected.

I take no credit for the content of this blog post. The work involved here is all Santiago Vanegas and going forward I'm going to get him to write his own blog posts with these nuggets in.


One of the things we've heard quite a bit when customers start doing simple changes to their login pages like uploading the institution logo is frustration that the default login page does something funny to logos if they don't fit a certain shape/size and you can end up with a login screen that looks something like this.


Now, this is actually really simple to fix by uploading a custom login page with some simple custom CSS.


By default, the CSS applied to the logo on the page looks like this:

.bb-login .new-logo.customized-logo img {
   width: 15.625rem;
   height: 15.625rem;
   border-radius: 7.8125rem;

In an Ultra enabled environment we have no way to get at this at source to make the change. Instead, we need to navigate to the brands page of the environment and download the login-ultra.jsp file so we can add some custom CSS to resolve the issue.


The CSS we need to add to the file looks like this:

.bb-login .new-logo.customized-logo img {
   width: 15.625rem;
   height: auto;
   border-radius: 0;


We add this to the file in between the end of the <bbNG:jsBlock> and before the cookie disclosure. Note that we have also had to add the <bbNG:cssBlock> to the file to add our custom CSS which is not there by default.


Depending on your logo you could add a max-width or a 100% width. In this case we’re giving an exact width for the logo to display at an exact size on the login block.


This means we get something which looks far more sensible (Yes - I know the logo now looks just like the normal login page now but it is a change I promise )


I've attached an example login-ultra.jsp file with the change in it. Hope this helps.

We are happy to announce that the Learn Migration Information Gathering Building Block has been updated to provide Ultra Base Navigation and Courses compatibility/equivalency information.  Install the Building Block (v1.4.1 or higher) for a personalized report of compatibility/equivalency based on the Building Blocks in use at your institution.


The Information Gathering Building Block is used when planning for a move to Learn SaaS, but it can now also be used by SaaS customers to help inform a decision to switch Ultra on.


Download the latest files:


You can access the compatibility reports from the Administrator Panel after the building block is installed and enabled. In the Tools menu, select  Learn Migration Information Gathering  to get started. From there, you can view the report within Learn as part of Main Report – view online, or download via the Building Blocks link under Main Report – CSV download. The CSVs can be imported into the Information Gathering workbook.


For more details on preparing for a move to SaaS, please see  Information Gathering for Learn Migration on Blackboard Help, or if you are already using Learn SaaS and are ready to move forward with Ultra, please see Adopting Ultra.  There’s also lots of useful information and resources at


If you have any feedback on the compatibility/equivalency information provided by the Building Block we would love to hear from you!  Please post any comments or questions below.

Good afternoon, 


If you are interested in REST, but don't know how to get started this is for you. I've created a shareable notebook with all steps needed to go from NO REST experience / integration to making a call against your own Blackboard Learn.  It should only take you 20 minutes, tops. 


At DevCon, I presented on using REST APIs and helped a few people get setup and make calls against their own Blackboard.  I combined my presentation with materials provided by Blackboard to walk you through every step.  You will need to create a developer account, and have admin access to complete all the steps. You don't need to install any programming language, or know how to use a terminal... at all.  You need to be able to hit play buttons, which will run parts of the code line by line.


All of this is available here: 


This updated notebook should have EVERY step you need to go from nothing to making calls and exploring. Hope this helps someone get started with REST, so you can build some cool things or write some cool scripts and then share back with the community.  


Let me know if you have any questions or comments, and I'll do my best to answer.



I've written before about guest access to Original courses in Ultra Navigation.  This post is about self-registration in Ultra Navigation.  The expected behavior in the system is:


1. Enable self-registration in the specific course in Administrator Panel

2. Share a link to the course with students who are not enrolled in the course

3. When students access the link, and Enroll button is visible in bottom left




As long as students are already logged in, authenticated, the system works as expected.  However, this is only one scenario for using self-registration.  Another scenario is to include a link to the self-registration course on a public website or in an invitation email, so students can click on the link, login, self-register, and participate in the course.


This scenario in Saas systems with Ultra Navigation breaks down.  After students click on the link, they are asked to login, and then they are forwarded to the Institutional Page ( Home page ).  This means that they have to click again on the invitation link to see the enrollment option.


In the past a solution was to enable guest access on a single course item, such as the Welcome content area in the course, and have students be logged in as guest, upon clicking Enroll, they would be asked to login as themselves and participate in the course.  This produces an error message.


So, to the workaround/solution. 


The invitation link has to be crafted to use the default login page and skip custom login page with appropriate new_loc parameter.  It may sound complicated, but the basics are here:


1. Destination URL to the self-registration course: 


You would find this URL by right-clicking on the content area in the destination course.


2. Encode the destination URL in a new URL with new_loc parameter: 


3. Create a short URL, easy to remember:


If step 2 seems a bit challenging, I'm sure the nerd-readers know what's going on, you can use our Guest Link tool to generate the URL.  All you need is the destination URL from step 1, then paste it in the Guest Link tool.  Simply, generate the guest URL, then modify one element:






The resulting URL will present the default login page (utilize ldap, shib, or local auth), then lead the student to the course with Enroll link.  After clicking Enroll the student will be able to participate in the course.

Ultra Navigation is a wonderful feature, which is a modern gateway to online learning with Blackboard.  Would you like to add more resources in the Tools area or grant to those resources access to students or faculty by role?  You can do this with a flexible LTI links and the Institutional Page Helpful Links.


This may facilitate an easy transition from the Blackboard Community System Portal to Ultra Navigation, and become a better experience for faculty and students.


Do faculty have difficulty finding their courses in the term-based display?  Do you have a Viking spirit to raid the features of Ultra Navigation?


You can now use the LTI Tool Generation app to connect regular URLs or special tools to Ultra Navigation or Ultra course tools section.  The Wizard itself is an LTI tool and takes 3 steps to configure. 


1. Register the LTI tool domain and approve on your system

2. Follow the steps to create LTI placement URLs


Some examples of resources, which can be turned into Ultra tools:

1. Your web pages with documentation and existing resources (ex:

2. Building Blocks without LTI functionality available (ex: My Courses Plus)

3. Community System tools (ex: tabs)

4. Instructor tools from My Blackboard (ex: Retention Center for multiple courses)


1. Community System in Ultra Navigation:

Community System in Ultra Navigation





2. Link to documentation or introductory resources:

Documentation link to Blackboard Collaborate






3. Embed Building Block content or modules to use in Ultra Navigation or Ultra courses under Books & Tools (ex: My Courses Plus):

My Blackboard Plus building block





ex: Qwickly for instructors:

Qwickly for instructors




ex: Qwickly for students:

qwickly for students





4. Link to tools from various Blackboard areas such as the multi-course view of the Retention Center from My Blackboard:

Retention Center in Ultra




This prospectus contains forward-looking statements that involve substantial risks and uncertainties. You can identify these statements by forward-looking words such as “anticipate”, “believe”, “could”, “estimate”, “expect”, “intend”, “may”, “plan”, “potential”, “should”, “will” and “would” or similar words. You should read statements that contain these words carefully because they discuss our future expectations, contain projections of our future results of operations or of our financial position or state other forward-looking information.


In other words, any elements discussed above can be discontinued by any of the vendors at any time.


Setup demos:






LTI Tool app

How important is guest access to your school?


After our Saas migration a strange thing has appeared.  Our system no longer allows guest access.  It appears, with Ultra navigation, this is by design to Original or Ultra courses.  The guest URLs now redirect to the login page instead of starting a guest session.  As a result, guests are unable to view guest allowed content.


This may be a bug related to article 000043671 or another issue, but for now we are given a workaround to modify guest URLs.  An example of a URL that should work as guest: 


The workaround calls for encoding the original url and adding it as new_loc in a new URL.… 


Notice action=guest_login and new_loc=...


Hopefully this will be resolved soon as most instructors expect guest content to be available via the same URL as logged in users.  However, for now we have a URL generator that will take your old URL and encode the URL to create a working link.



Guest Link App 

As I mentioned in my May blog post, we will be replacing the New Box View experience for Inline Assignment grading for both the Original and Ultra experiences.  If you haven't read my previous post yet, I recommend reading it first and coming back.  Over the last several weeks, we’ve continued the technical review of a replacement tool that compared building our own in-house tool and various 3rd party technologies.  We have decided on the direction of the New Box View replacement and will be partnering with a vendor to bring richer functionality and new features to the Inline Grading experience.  This not only will bring the experience more in line with the features that Crocodoc had available, but also delivers additional features that will be beneficial to the grading workflow.   


You might be asking why we decided to embark on a partnership with another vendor.  With this integration, we will have complete ownership of rolling out upgrades, fixes and improvements.  Their sleek design, ease of use and expanded feature set were key factors to filling in the gaps for much needed functionality. There is flexibility for us to extend the feature set and layer additional customizations on top of the user interface at a much faster pace as well.  I would love for your first experience with the replacement tool to be through a Learn environment, so I won't be sharing the vendor's name yet.  In the mean time, I can confirm enhancements you will be seeing with then new solution.  While I could easily create a top 20 list, here are the top 10 annotation capabilities you can expect to see with initial release.  


  1. Users can add a comment and then customize the color or icon associated with the comment.  
  2. Text can be added directly on the page and modified to use different colors, size and font.  
  3. There is a sidebar summary view that lists the type of annotation by page, text from a comment, and the ability to delete an annotation.  
  4. When highlighting or freehand drawing, there are different color and size selections. 
  5. Annotations can be edited, moved or deleted easily. 
  6. There are options to strikethrough text and users can underline with either a straight or squiggly line using different colors.  
  7. Freehand highlighting and drawing can be erased.  
  8. When downloading or printing, the annotations are automatically built into the document. 
  9. There is a thumbnail view for each page in the document. 
  10. The menu is responsive on smaller screen sizes and users can seamlessly switch between touchscreen and a mouse on a device.  


While we needed to complete a technical review for the replacement, we are continuing the technical due diligence to ensure the migration is not only seamless but ensuring clients have enough time to prepare and plan for the release.   We are looking to make it generally available without any downtime requirements and need to make sure all the pieces are in place to make that happen.  Additionally, we understand a major shift during the middle of a term is not ideal so we will be gathering client feedback to identify an optimal time for the release.   


A lot of clients have already expressed interest in how they can help with testing and feedback, so there will be several options to provide input.   We plan to have a Technical Preview Program ahead of the release and will have several opportunities starting next month as well.  The first will be at BbWorld where we will continue to provide more details about the replacement tool.  After BbWorld, I will be attending various meetings, such as the weekly Admin Office Hours, to dive further into the new features, discuss change management and gather feedback.  


A big thank you to everyone who has shared recommendations and feedback so far.  If you have any questions, feel free to post them below or send me a direct message.



I am pleased to share today what we're planning for the future and appreciate all of the feedback regarding the current functionality with the New Box View experience. When Box acquired Crocodoc, we believed that Box would continue to deliver functionality and enhancements for these critical teaching workflows, but that has not been the case. As many of you know, we worked diligently with Box in an attempt to get better results.  Based on the lack of responsiveness, quality control issues, and with your feedback and input (which accelerated our thinking on how we must improve your experience in this area), we have decided to replace New Box View and move forward with a new solution that is more in our control in order to better meet your current and evolving needs. 


I also wanted to share a bit more about the timing of this message. In the last couple of months, we were trying to work with Box and were in the middle of negotiating the immediate partnership agreement which is why we did not share as much as we would have liked. At the same time we were beginning technical diligence while building out more robust requirements with your feedback. The list of enhancements gathered on the Community site have been a beacon throughout the process for what needs to be included in the future workflow for both Original and Ultra.  We need to not only deliver the core features you appreciated with Crocodoc but also add innovative functionality as well.  We are currently continuing the technical diligence, gathering your feedback on requirements and prioritization, and deciding upon the best architecture and solution that will provide the ability to be dynamic and innovative as your needs change over time. To be honest, this is not easy work to get right, and we need this analysis done in order to share a more definitive timeline.  We will share more details on timing and functionality in mid-June, and then again during BbWorld.  As we work towards the release, we will be providing regular updates on the progress as well as targeted outreach for feedback opportunities, so you'll be hearing from me or others working on the project for input.


So as you can see, we’re set on moving in a new direction with this critical capability.  As we go through this process, we are not going to stop working with Box to push for innovation in New Box View based on your needs.  While we can’t predict how successful this will be, we understand that you’ll being using New Box View for Inline Grading in the near term, so we want to make sure this experience is as good as it can possibly be.


I want to say a big THANK YOU for your ongoing engagement on the Community site and elsewhere.  We know that this has been a challenging topic, but I hope this update, and our updates going forward, will help give you clarity and confidence about the improvements coming in this important area.

About: Internet Explorer and Blackboard Learn don't play nice together. This article explains how to create a warning that will appear only for users who attempt to log in to your Blackboard environment using Internet Explorer.


What's the Problem?

For the better part of my career as an LMS administrator, I've told anyone who would listen that Internet Exploder (Explorer) is good for only one thing; downloading a different browser. While I've seen many people abandon the little blue "e" for a more modern browser, there remains a coterie of diehard IE adherents who simply refuse to switch.


In their defense, there are plenty of reasons folks may still be on IE. Some are running old machines. Some lack (or think they lack) the technical knowledge needed to update their browser. Others are comfortable with the way things are and just don't want to change. Whatever the reason, (and I'm sure the reason is a very good one), it's time for a change. It's 2019. Microsoft officially ended support for Internet Explorer three years ago, and the old blue "e" just ain't what it used to be.


Why Now?


Deep in the heart of the Learn SaaS v3500.0.3 Flexible Deployment release (roughly equivalent to v3500.9.0 for Continuous Delivery), something changed, rendering useless some functionality for Internet Explorer users. Since the release of 3500.0.3, we've received calls from frustrated IE users for whom the platform no longer functioned properly and we had to break the bad news to them that the only way to fix their problem was to stop using Internet Explorer.


But it's far better to catch these users before they log in to the system so that they aren't in the middle of something when they realize that there is an issue.


To help minimize frustration for our end users, we created an "Incompatible Browser" warning that appears on the login page. We didn't want to do was use the login page announcements area (because these messages cycle through) or display the warning to users who were already on a compatible browser.


So we had to come up with a different solution...

NOTE: If you're working with a single sign-on portal that bypasses the Blackboard login page, you might as well stop reading here, contact your portal admin and ask for their help in creating an appropriate intervention for IE users.


Danger, Will Robinson! Danger!


Still with me? Cool.


Our solution to this issue was to create a warning. It's only a warning. It doesn't force anyone to do anything, but it provides users with critical information based upon their system configuration, explains the problem and provides instructions on how to correct the issue.


The warning is designed so it will only be seen by IE users but will not prevent them from logging in. It is also configured so that it cannot be dismissed by the end user.


Since we're writing code for old browsers, we want to keep it as simple as possible and avoid using JavaScript or other elements that the browser might not recognize or render properly. So, the simplest solution is one that is 100% CSS and HTML.

CAVEAT: Each institution's login page is configured differently. Before beginning, make sure you have a backup copy of your login page downloaded to a local machine. When you go to test your changes, make sure you're logged in to your environment in a separate browser from the one through which you're uploading the updated .jsp file. This way, if you accidentally insert code that breaks your login page, you can still change it back to the previous version.

To Catch IE (or, the part you want to go to if you skipped all that intro text)


To ensure that you get all the IE users, you have to approach it from two different directions, because in the world of Internet Explorer, there are two different technologies. Newer versions of Internet Explorer (10 and up), can be identified by using a media query. Old versions of Internet Explorer (9 and earlier) can be detected with a conditional comment (something that was abandoned after version 9).


First Things First

Both technologies will display the same warning. So we're creating a <div> element and making it visible when certain conditions are met. Before we worry about how to make it visible, we need to first create the element and hide it. To do this, I opened the login.jsp file and found the CSS section. After the main components were configured, I added the <div> element and set it to be hidden by default. It looks like this...


#IEMessage {

display: none;




Media Queries

I mentioned that there were two different ways we had to approach this. The first is the more modern media query method to detect IE10 and higher. I'm not going to go into what media queries are (you can do that research on your own), but suffice it to say that it's a little piece of CSS that says to the browser, "Hey! If you can interpret this code, please use these parameters. Otherwise, ignore it." In this case, all browsers EXCEPT for Internet Explorer will look at the code and be like "I have no idea what you're talking about. I'm ignoring you." You can add this at any point in the CSS, because CSS isn't compiled code and it isn't rendered in any particular order.


The @media all and (-ms-high-contrast: active), (-ms-high-contrast: none)media query tells the browser to display the div ONLY IF the stated conditions are met, and since -ms-high-contrast is a setting that only pertains to IE 10+, it will be ignored by everything except IE10+. The most important setting is display: inline-block; part because that's what tells the browser to make it visible (there are options other than inline-block, but I'll let you research that on your own). The rest is purely cosmetic.



@media all and (-ms-high-contrast: active), (-ms-high-contrast: none) {

#IEMsesage {

border: 4px outset #EAEAEA;

display: inline-block;

margin: auto;

position: relative;

text-align: center;

width: 70%;

max-width: 600px;

background-color: #FAEBD7;

color: #CCCCCC;




Conditional Comments

Conditional Comments only work on IE9 and older versions. Conditional comments are statements that go in the HTML part of the page (not the CSS) and should immediately follow any <meta> tags. The conditional comment, similar to the media query, says to the browser "Hey! If you can read this, do this. Otherwise, ignore it." To take your CSS from the media query and put it into the conditional comment, just paste everything from the #IEMessage div into the space between <style> and </style> tags.



<!--[if lte IE 9]>







Add the <div> to the <html>

The HTML area of the login.jsp file lays out exactly how the elements on your homepage will be displayed. In this part, you WILL need to worry about positioning because these are the content and formatting information that is passed to the browser.


In our case, I added the warning above the login options (we have three buttons from which users select their role in our system and are then directed to the login page appropriate to their role).


This part contains the actual text of the message, and you can say whatever you want, just make sure it's properly formatted. The key is to create a <div> with the ID of "IEMessage" (or whatever you named the div in the CSS) and insert all your code.



<div id="IEMessage" style="margin-left: 5px; margin-right: 5px;">


<b><i>We have detected that you are using Internet Explorer to access Blackboard.</i></b><br><br>Please note that Internet Explorer is<b>not</b> compatible with Blackboard and may not perform as expected. To avoid errors and frustration, we

<b>strongly</b> suggest that you use a different web browser.<br><br>For best results, we recommend <a href="" target="_blank">Google Chrome</a> or <a href="" target="_blank">Mozilla Firefox</a>,<br> but any of the <a href="" target="_blank">supported browsers in this list</a> will work as well.<br><br>

If you wish to proceed using Internet Explorer, you may log in below.



Now, all you have to do is save your updated file, upload it into Blackboard and navigate to your login page using Internet Explorer. If it worked, you'll see your message displayed.




To see how it will render under various versions of Internet Explorer, you can click on the cog in the IE menu and select "F12 Developer Tools" from the dropdown. To preview the page as it would be rendered in other versions of Internet Explorer, change the document mode by clicking on the funky little document mode icon (just to the right of "Memory" in the menubar) and selecting which version of IE you'd like to render the page using.




At this point, there are only 3 more things you need to do....


  1. Tweak.
  2. Test.
  3. Repeat.


Hopefully this made some sense to someone out there.

Update April 3rd: Box reported an incident starting at 1:13 PM EDT which impacted New Box View.  Users might have seen latency and/or errors while using Inline Grading within the last few hours.  The issue has been resolved as of 3:28 PM EDT and service should be fully restored.  If you are still seeing any errors or latency, please let me know.


Update March 28th: Box is postponing tomorrow's release to ensure all of the issues we reported are addressed.  We will be working with them to get an updated timeline and will provide updates as we know more.


Update March 22: In case you weren't able to attend the 9.1 Office Hours meeting, Box is tentatively planning to release an update on March 29th.  We will be testing this release before it is made live to confirm the planned fixes as well as the critical regressions with the last release are fixed.  I'll be sharing more information next week, but wanted to give everyone advance notice of the upcoming release.


You've probably seen me responding to New Box issues but I haven't taken the time to fully introduce myself.  Some of you may know me from Cumulative Update releases, bug discussions or from our Learn Technical Preview program.  If you were an ANGEL client, you might even remember me from Tier 1 Support. I have been with Blackboard for almost 10 years and on the Learn Product Management team for the last 4.5 years.


With Trey's departure last month, I am the new lead with the New Box View integration for Inline Assignment Grading and our partnership with Box, Inc.


After researching the past few weeks, I've put together a list of the most requested features and where we need to go with the feature. Based on feedback, this will help bring New Box View in better alignment with the previous Crocodoc workflows and add additional functionality.


  1. Sidebar- Summary View- In Progress with Box and targeted for release later in the year.
  2. Editing annotations
  3. Re-usable comments/ Comment Bank
  4. Video based comments and feedback
  5. Strike-through Annotation Type
  6. Different colors for highlighting tool
  7. Different line color and drawing line thickness
  8. Indication of Comment in Highlighted Text
  9. Eraser



In addition to this list, there are navigational and display elements that need improving as well to enhance usability and flow.  While not considered new features, it's worth noting that these will also be reviewed as we drive roadmap discussions with Box.


Also, as we move forward, I will add that it's never my intention to be vague with release timelines when sharing information.  I promise to be open as much as possible with available information.  Part of the conversations we're having with Box is improving timeline communication.


Please feel free to leave any additional feedback on this post. Part of the research was reviewing Community site threads, but there is a possibility I have missed some important ideas.  I will be at the Office Hours meeting on March 19th at 12 PM ET that Edgar Gonzalez and Mark Burris host to review and discuss feedback as well.


As always, I appreciate the candid feedback and passion around improving this feature so it better fits the needs of users.


Julia Miller

Product Manager, Learn