diff --git a/src/rules/__tests__/form-control-has-label.test.ts b/src/rules/__tests__/form-control-has-label.test.ts
index 25c1d0f9..8210c09e 100644
--- a/src/rules/__tests__/form-control-has-label.test.ts
+++ b/src/rules/__tests__/form-control-has-label.test.ts
@@ -21,7 +21,16 @@ makeRuleTester("form-control-has-label", rule, {
       <div aria-hidden="true">
         <input value="1" type="text" />
       </div>
-    `
+    `,
+    "<b-form-input />"
   ],
-  invalid: ["<input type='text' />", "<textarea type='text'></textarea>"]
+  invalid: [
+    "<input type='text' />",
+    "<textarea type='text'></textarea>",
+    {
+      code: "<div><b-form-input /></div>",
+      options: [{ controlComponents: ["b-form-input"] }],
+      errors: [{ messageId: "default" }]
+    }
+  ]
 });
diff --git a/src/rules/form-control-has-label.ts b/src/rules/form-control-has-label.ts
index 037846c7..e406f20c 100644
--- a/src/rules/form-control-has-label.ts
+++ b/src/rules/form-control-has-label.ts
@@ -39,13 +39,31 @@ const rule: Rule.RuleModule = {
       default:
         "Each form element must have a programmatically associated label element."
     },
-    schema: []
+    schema: [
+      {
+        type: "object",
+        properties: {
+          controlComponents: {
+            type: "array",
+            items: {
+              type: "string"
+            },
+            uniqueItems: true
+          }
+        }
+      }
+    ]
   },
   create(context) {
+    const { controlComponents: customControlComponents = [] } =
+      context.options[0] || {};
+
+    const controlComponents = ["input", "textarea", ...customControlComponents];
+
     return defineTemplateBodyVisitor(context, {
       VElement(node) {
         const elementType = getElementType(node);
-        if (!["input", "textarea"].includes(elementType)) {
+        if (!controlComponents.includes(elementType)) {
           return;
         }
 
diff --git a/src/rules/tabindex-no-positive.ts b/src/rules/tabindex-no-positive.ts
index 68a992ec..6e0f5550 100644
--- a/src/rules/tabindex-no-positive.ts
+++ b/src/rules/tabindex-no-positive.ts
@@ -22,7 +22,7 @@ const rule: Rule.RuleModule = {
       VElement(node) {
         const tabIndex = getLiteralAttributeValue(node, "tabindex");
 
-        if (tabIndex && +tabIndex > 0) {
+        if (tabIndex && Number(tabIndex) > 0) {
           context.report({ node: node as any, messageId: "default" });
         }
       }