diff --git a/__tests__/integration/mirador/svg_annos.html b/__tests__/integration/mirador/svg_annos.html
index 71d87cfbadca39e3ce994659b790c8e4a795d675..c7c39733cceb8a7b084c9364c52c597fd95007a2 100644
--- a/__tests__/integration/mirador/svg_annos.html
+++ b/__tests__/integration/mirador/svg_annos.html
@@ -15,7 +15,7 @@
        id: 'mirador',
        windows: [
          {
-           manifestId: 'https://api.myjson.com/bins/ahd5y',
+           manifestId: 'https://collections.st-andrews.ac.uk/manifest-test/test-manifest.json',
          },
          {
            manifestId: 'https://iiif.bodleian.ox.ac.uk/iiif/manifest/748a9d50-5a3a-440e-ab9d-567dd68b6abb.json',
diff --git a/__tests__/src/lib/CanvasAnnotationDisplay.test.js b/__tests__/src/lib/CanvasAnnotationDisplay.test.js
index 16914ca66538ce1b257d3a2876a77434f06bdee4..0427dec5209f1f1f556ec349a5f36fb1b0bb2942 100644
--- a/__tests__/src/lib/CanvasAnnotationDisplay.test.js
+++ b/__tests__/src/lib/CanvasAnnotationDisplay.test.js
@@ -57,6 +57,7 @@ describe('CanvasAnnotationDisplay', () => {
       const context = {
         restore: jest.fn(),
         save: jest.fn(),
+        setLineDash: jest.fn(),
         stroke: jest.fn(),
         translate: jest.fn(),
       };
@@ -68,8 +69,8 @@ describe('CanvasAnnotationDisplay', () => {
       expect(context.save).toHaveBeenCalledWith();
       expect(context.restore).toHaveBeenCalledWith();
       expect(context.translate).toHaveBeenCalledWith(-100, 0);
-      expect(context.strokeStyle).toEqual('blue');
-      expect(context.lineWidth).toEqual(20);
+      expect(context.strokeStyle).toEqual('#00bfff');
+      expect(context.lineWidth).toEqual(617.4334);
     });
   });
   describe('fragmentContext', () => {
diff --git a/src/lib/CanvasAnnotationDisplay.js b/src/lib/CanvasAnnotationDisplay.js
index 454c91cb56bd0a39124667a3dbea2f55c2ab76ad..c1955b0598e2b204aa7f5a0c8126f060e4f4524b 100644
--- a/src/lib/CanvasAnnotationDisplay.js
+++ b/src/lib/CanvasAnnotationDisplay.js
@@ -46,13 +46,27 @@ export default class CanvasAnnotationDisplay {
        *  context.strokeStyle = element.attributes.stroke.nodeValue;
        *  context.lineWidth = element.attributes['stroke-width'].nodeValue;
        */
-      context.strokeStyle = this.color; // eslint-disable-line no-param-reassign
-      context.lineWidth = this.lineWidth(); // eslint-disable-line no-param-reassign
+      this.setupLineDash(context, element.attributes);
+      context.strokeStyle = this.strokeColor( // eslint-disable-line no-param-reassign
+        element.attributes,
+      );
+      context.lineWidth = this.lineWidth( // eslint-disable-line no-param-reassign
+        element.attributes,
+      );
       context.stroke(p);
       context.restore();
     });
   }
 
+  /* eslint-disable  require-jsdoc, class-methods-use-this */
+  setupLineDash(context, elementAttributes) {
+    // stroke-dasharray
+    if (elementAttributes['stroke-dasharray']) {
+      context.setLineDash(elementAttributes['stroke-dasharray'].nodeValue.split(','));
+    }
+  }
+  /* eslint-enable  require-jsdoc, class-methods-use-this */
+
   /** */
   fragmentContext(context) {
     const fragment = this.resource.fragmentSelector;
@@ -64,8 +78,20 @@ export default class CanvasAnnotationDisplay {
   }
 
   /** */
-  lineWidth() {
-    return Math.ceil(10 / (this.zoom * this.width));
+  strokeColor(elementAttributes) {
+    if (elementAttributes && elementAttributes.stroke) {
+      return elementAttributes.stroke.nodeValue;
+    }
+    return this.color;
+  }
+
+  /** */
+  lineWidth(elementAttributes) {
+    let calculatedWidth = Math.ceil(10 / (this.zoom * this.width));
+    if (elementAttributes && elementAttributes['stroke-width']) {
+      calculatedWidth *= elementAttributes['stroke-width'].nodeValue;
+    }
+    return calculatedWidth;
   }
 
   /** */