diff --git a/internal/project/packageindex/packageindexschemas_test.go b/internal/project/packageindex/packageindexschemas_test.go
index 436a6adb..56737884 100644
--- a/internal/project/packageindex/packageindexschemas_test.go
+++ b/internal/project/packageindex/packageindexschemas_test.go
@@ -157,14 +157,14 @@ func TestMinLength(t *testing.T) {
 		require.NoError(t, err)
 
 		t.Run(fmt.Sprintf("%s less than minimum length of %d (%s)", testTable.propertyPointerString, testTable.minLength, testTable.complianceLevel), func(t *testing.T) {
-			assert.True(t, schema.PropertyLessThanMinLength(strings.TrimPrefix(testTable.propertyPointerString, "/"), packageindex.Validate(packageIndex)[testTable.complianceLevel]))
+			assert.True(t, schema.PropertyLessThanMinLength(testTable.propertyPointerString, packageindex.Validate(packageIndex)[testTable.complianceLevel]))
 		})
 
 		// Test schema validation results with minimum value length.
 		propertyPointer.Set(packageIndex, strings.Repeat("a", testTable.minLength))
 
 		t.Run(fmt.Sprintf("%s at minimum length of %d (%s)", testTable.propertyPointerString, testTable.minLength, testTable.complianceLevel), func(t *testing.T) {
-			assert.False(t, schema.PropertyLessThanMinLength(strings.TrimPrefix(testTable.propertyPointerString, "/"), packageindex.Validate(packageIndex)[testTable.complianceLevel]))
+			assert.False(t, schema.PropertyLessThanMinLength(testTable.propertyPointerString, packageindex.Validate(packageIndex)[testTable.complianceLevel]))
 		})
 	}
 }
@@ -316,7 +316,7 @@ func TestRequired(t *testing.T) {
 
 		validationResult := packageindex.Validate(packageIndex)
 		t.Run(fmt.Sprintf("%s (%s)", testTable.propertyPointerString, testTable.complianceLevel), func(t *testing.T) {
-			testTable.assertion(t, schema.RequiredPropertyMissing(strings.TrimPrefix(testTable.propertyPointerString, "/"), validationResult[testTable.complianceLevel]))
+			testTable.assertion(t, schema.RequiredPropertyMissing(testTable.propertyPointerString, validationResult[testTable.complianceLevel]))
 		})
 	}
 }
@@ -348,7 +348,7 @@ func TestEnum(t *testing.T) {
 		require.NoError(t, err)
 
 		t.Run(fmt.Sprintf("%s: %s (%s)", testTable.propertyPointerString, testTable.propertyValue, testTable.complianceLevel), func(t *testing.T) {
-			testTable.assertion(t, schema.PropertyEnumMismatch(strings.TrimPrefix(testTable.propertyPointerString, "/"), packageindex.Validate(packageIndex)[testTable.complianceLevel]))
+			testTable.assertion(t, schema.PropertyEnumMismatch(testTable.propertyPointerString, packageindex.Validate(packageIndex)[testTable.complianceLevel]))
 		})
 	}
 }
@@ -512,7 +512,7 @@ func TestPattern(t *testing.T) {
 		require.NoError(t, err)
 
 		t.Run(fmt.Sprintf("%s: %s (%s)", testTable.propertyPointerString, testTable.propertyValue, testTable.complianceLevel), func(t *testing.T) {
-			testTable.assertion(t, schema.PropertyPatternMismatch(strings.TrimPrefix(testTable.propertyPointerString, "/"), packageindex.Validate(packageIndex)[testTable.complianceLevel]))
+			testTable.assertion(t, schema.PropertyPatternMismatch(testTable.propertyPointerString, packageindex.Validate(packageIndex)[testTable.complianceLevel]))
 		})
 	}
 }
@@ -567,7 +567,7 @@ func TestType(t *testing.T) {
 			_, err = propertyPointer.Set(packageIndex, testTable.propertyValue)
 
 			t.Run(fmt.Sprintf("%s: %v (%s)", testTable.propertyPointerString, testTable.propertyValue, complianceLevel), func(t *testing.T) {
-				testTable.assertion(t, schema.PropertyTypeMismatch(strings.TrimPrefix(testTable.propertyPointerString, "/"), packageindex.Validate(packageIndex)[complianceLevel]))
+				testTable.assertion(t, schema.PropertyTypeMismatch(testTable.propertyPointerString, packageindex.Validate(packageIndex)[complianceLevel]))
 			})
 		}
 	}
@@ -632,7 +632,7 @@ func TestFormat(t *testing.T) {
 		require.NoError(t, err)
 
 		t.Run(fmt.Sprintf("%s: %s (%s)", testTable.propertyPointerString, testTable.propertyValue, testTable.complianceLevel), func(t *testing.T) {
-			testTable.assertion(t, schema.PropertyFormatMismatch(strings.TrimPrefix(testTable.propertyPointerString, "/"), packageindex.Validate(packageIndex)[testTable.complianceLevel]))
+			testTable.assertion(t, schema.PropertyFormatMismatch(testTable.propertyPointerString, packageindex.Validate(packageIndex)[testTable.complianceLevel]))
 		})
 	}
 }
@@ -693,7 +693,7 @@ func TestAdditionalProperties(t *testing.T) {
 		require.NoError(t, err)
 
 		t.Run(fmt.Sprintf("Additional property in the %s object (%s)", testTable.propertyPointerString, testTable.complianceLevel), func(t *testing.T) {
-			testTable.assertion(t, schema.ProhibitedAdditionalProperties(strings.TrimPrefix(testTable.propertyPointerString, "/"), packageindex.Validate(packageIndex)[testTable.complianceLevel]))
+			testTable.assertion(t, schema.ProhibitedAdditionalProperties(testTable.propertyPointerString, packageindex.Validate(packageIndex)[testTable.complianceLevel]))
 		})
 	}
 }
diff --git a/internal/rule/schema/parsevalidationresult.go b/internal/rule/schema/parsevalidationresult.go
index 7d122de5..4d076f79 100644
--- a/internal/rule/schema/parsevalidationresult.go
+++ b/internal/rule/schema/parsevalidationresult.go
@@ -26,42 +26,42 @@ import (
 
 // RequiredPropertyMissing returns whether the given required property is missing from the document.
 func RequiredPropertyMissing(propertyName string, validationResult ValidationResult) bool {
-	return ValidationErrorMatch("#", "/required$", "", "^#/"+propertyName+"$", validationResult)
+	return ValidationErrorMatch("#", "/required$", "", "^#/?"+propertyName+"$", validationResult)
 }
 
 // PropertyPatternMismatch returns whether the given property did not match the regular expression defined in the JSON schema.
 func PropertyPatternMismatch(propertyName string, validationResult ValidationResult) bool {
-	return ValidationErrorMatch("#/"+propertyName, "/pattern$", "", "", validationResult)
+	return ValidationErrorMatch("#/?"+propertyName, "/pattern$", "", "", validationResult)
 }
 
 // PropertyLessThanMinLength returns whether the given property is less than the minimum length allowed by the schema.
 func PropertyLessThanMinLength(propertyName string, validationResult ValidationResult) bool {
-	return ValidationErrorMatch("^#/"+propertyName+"$", "/minLength$", "", "", validationResult)
+	return ValidationErrorMatch("^#/?"+propertyName+"$", "/minLength$", "", "", validationResult)
 }
 
 // PropertyGreaterThanMaxLength returns whether the given property is greater than the maximum length allowed by the schema.
 func PropertyGreaterThanMaxLength(propertyName string, validationResult ValidationResult) bool {
-	return ValidationErrorMatch("^#/"+propertyName+"$", "/maxLength$", "", "", validationResult)
+	return ValidationErrorMatch("^#/?"+propertyName+"$", "/maxLength$", "", "", validationResult)
 }
 
 // PropertyEnumMismatch returns whether the given property does not match any of the items in the enum array.
 func PropertyEnumMismatch(propertyName string, validationResult ValidationResult) bool {
-	return ValidationErrorMatch("#/"+propertyName, "/enum$", "", "", validationResult)
+	return ValidationErrorMatch("#/?"+propertyName, "/enum$", "", "", validationResult)
 }
 
 // PropertyDependenciesMissing returns whether property dependencies of the given property are missing.
 func PropertyDependenciesMissing(propertyName string, validationResult ValidationResult) bool {
-	return ValidationErrorMatch("", "/dependencies/"+propertyName+"/[0-9]+$", "", "", validationResult)
+	return ValidationErrorMatch("", "/dependencies/?"+propertyName+"/[0-9]+$", "", "", validationResult)
 }
 
 // PropertyTypeMismatch returns whether the given property has incorrect type.
 func PropertyTypeMismatch(propertyName string, validationResult ValidationResult) bool {
-	return ValidationErrorMatch("^#/"+propertyName+"$", "/type$", "", "", validationResult)
+	return ValidationErrorMatch("^#/?"+propertyName+"$", "/type$", "", "", validationResult)
 }
 
 // PropertyFormatMismatch returns whether the given property has incorrect format.
 func PropertyFormatMismatch(propertyName string, validationResult ValidationResult) bool {
-	return ValidationErrorMatch("^#/"+propertyName+"$", "/format$", "", "", validationResult)
+	return ValidationErrorMatch("^#/?"+propertyName+"$", "/format$", "", "", validationResult)
 }
 
 // ProhibitedAdditionalProperty returns whether the given property has prohibited additional subproperty(s).
diff --git a/internal/rule/schema/schema_test.go b/internal/rule/schema/schema_test.go
index 86fd78f1..8a6e780a 100644
--- a/internal/rule/schema/schema_test.go
+++ b/internal/rule/schema/schema_test.go
@@ -19,7 +19,6 @@ import (
 	"encoding/json"
 	"fmt"
 	"regexp"
-	"strings"
 	"testing"
 
 	"github.com/arduino/arduino-lint/internal/project/general"
@@ -228,7 +227,7 @@ func TestProhibitedAdditionalProperties(t *testing.T) {
 		var instance map[string]interface{}
 		json.Unmarshal([]byte(rawInstance), &instance)
 
-		assert.False(t, ProhibitedAdditionalProperties(strings.TrimPrefix(testTable.objectPointerString, "/"), Validate(instance, validSchemaWithReferences)), fmt.Sprintf("No additional properties in %s", testTable.objectPointerString))
+		assert.False(t, ProhibitedAdditionalProperties(testTable.objectPointerString, Validate(instance, validSchemaWithReferences)), fmt.Sprintf("No additional properties in %s", testTable.objectPointerString))
 
 		// Add additional property to object.
 		pointer, err := gojsonpointer.NewJsonPointer(testTable.objectPointerString + "/fooAdditionalProperty")
@@ -237,7 +236,7 @@ func TestProhibitedAdditionalProperties(t *testing.T) {
 		require.NoError(t, err)
 
 		t.Run(fmt.Sprintf("Additional property in the %s object", testTable.objectPointerString), func(t *testing.T) {
-			testTable.assertion(t, ProhibitedAdditionalProperties(strings.TrimPrefix(testTable.objectPointerString, "/"), Validate(instance, validSchemaWithReferences)))
+			testTable.assertion(t, ProhibitedAdditionalProperties(testTable.objectPointerString, Validate(instance, validSchemaWithReferences)))
 		})
 	}
 }