         space.width = 12
 
         let toolbar = FormControllerInputAccessoryToolbar(frame: .zero)
-        toolbar.items = [
-            space,
-            previousButton,
-            space,
-            nextButton,
+        var items = [UIBarButtonItem]()
+        if allowTraversal {
+            items.append(contentsOf: [
+                space,
+                previousButton,
+                space,
+                nextButton
+            ])
+        }
+        items.append(contentsOf: [
             UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil),
             doneButton,
-            space,
-        ]
+            space
+        ])
+        toolbar.items = items
 
         let view = UIView(frame: CGRect(origin: CGPoint(x: 0, y: 0), size: CGSize(width: UIScreen.main.bounds.width, height: 44)))
         view.addSubview(toolbar)

        - inputViews: the array of form input fields to iterate through, in order
        - tableView: tableView with cells containing input fields, for keyboard
            avoidance
        - environment: optional instance of an app's environment
     */
    @objc public init(inputViews: [UIView], in tableView: UITableView, environment: Environment?) {
        super.init()
        self.inputViews = inputViews
        self.tableView = tableView
        self.environment = environment
        _init()
    }


    fileprivate var oldTextViewDelegates: [UITextView: UITextViewDelegate?] = [:]
    @objc public weak var currentInputView: UIView?

    private var allowTraversal: Bool = true
    private weak var tableView: UITableView?
    private weak var scrollView: UIScrollView?
    private var originalContentInset: UIEdgeInsets?
