diff --git a/src/gapfill-open.js b/src/gapfill-open.js
index 1b3b3662b8333e54a25a675b9467b7e01b49b981..18fae88a2aaa5bfe9a83166e636f41249afcd7f8 100644
--- a/src/gapfill-open.js
+++ b/src/gapfill-open.js
@@ -44,6 +44,10 @@ export const gapfillOpenWidget = {
                 // It's a gap
                 // Create the <input> element
                 segmentElem = gapTemplate.cloneNode(true);
+                // Add the size attribute if present
+                if (segment.hasOwnProperty("size")) {
+                    segmentElem.setAttribute("size", segment.size);
+                }
                 segmentElem.setAttribute("data-index", nbGaps); // The node knows its index
                 // Add listener to update the question's value when the input value changes
                 segmentElem.addEventListener("change", (e) => {
diff --git a/src/json.js b/src/json.js
index 7b3a22e272c64c8324de926ff70dfc8e85911b26..ec8677255cd23eb587db2503bbdfa70be5416ab7 100644
--- a/src/json.js
+++ b/src/json.js
@@ -44,9 +44,15 @@ export const json = {
             title: "Open-ended gapfill",
             segments: [
                 "Lorem ",
+                {size: 5}, // gaps can have a "size" attribute to hint how many characters are expected
+                " dolor sit ",
                 {},
-                " dolor sit amet [...]"
-            ], correctAnswer: ["ipsum"]
+                ", consectetur adipiscing elit [...]"
+            ],
+            correctAnswer: [
+                "ipsum",
+                "amet"
+            ]
         }
     ]
 };
\ No newline at end of file