     /// Checks if the next character entered by the user will be in Bold, or not.
     ///
     open func typingAttributesContainsBold() -> Bool {
-        guard let font = typingAttributes[NSFontAttributeName] as? UIFont else {
-            return false
-        }
-
-        return font.containsTraits(.traitBold)
+        let formatter = BoldFormatter();
+        return formatter.present(in: typingAttributes)
     }
 
 
     /// Checks if the next character entered by the user will be in Italic, or not.
     ///
     open func typingAttributesContainsItalic() -> Bool {
-        guard let font = typingAttributes[NSFontAttributeName] as? UIFont else {
-            return false
-        }
-
-        return font.containsTraits(.traitItalic)
+        let formatter = ItalicFormatter();
+        return formatter.present(in: typingAttributes)
     }
 
 

    /// - Returns: True if the attribute exists at the specified index.
    ///
    open func formattingAtIndexContainsBold(_ index: Int) -> Bool {
        return storage.fontTrait(.traitBold, existsAtIndex: index)
    }



    /// Checks if the next character that the user types will be formatted as Blockquote, or not.
    ///
    open func typingAttributesContainsBlockquote() -> Bool {
        let formatter = BlockquoteFormatter();
        return formatter.present(in: typingAttributes)
    }


    /// Checks if the next character that the user types will be formatted as an Ordered List, or not.
    ///
    open func typingAttributesContainsOrderedList() -> Bool {
        let formatter = TextListFormatter(style: .ordered);
        return formatter.present(in: typingAttributes)
    }


    /// Checks if the next character that the user types will be formatted as an Unordered List, or not.
    ///
    open func typingAttributesContainsUnorderedList() -> Bool {
        let formatter = TextListFormatter(style: .unordered);
        return formatter.present(in: typingAttributes)
    }

    /// Checks if the next character that the user types will be part of a link anchor, or not.
