Hello Vincent,
With Dexterity there are multiple levels where you can hook into, and they are a bit more strict than the Archetypes system and iirc use the component architecture more. But I must admit most of my Archetypes knowledge has faded.
The class from your code above is the class that implements the actual content item object. If you want to change the widget for a field defined in your IActuality Schema (which is an Interface from zope.interface) you can/should do so with directives on the IActuality schema itself. See 36. Dexterity: Reference – Mastering Plone 5 Development — Plone Training 2022 documentation chapter 36.5. With directives you can set the widget used and pass extra parameters.
The extra complication here is that the Description field is not on the 'main' schema of the content item, but is activated through a behavior. (Think SchemaExtenders v2). An axample to customise a 'behavior' field is discussed here: How can i set permissions for Widget/Field of a behavior with plone.autoform?.
Behaviors are a 2 edged sword: they are very easy to add to a CT if you 100% need their functionality and styling by adding one line to the GS profile field that configures the activated behaviors on a content type and thus its items, but if you want to customise fields it's sometimes easier to define the field in your CT's main schema. (like a 'text' field or add the Text behavior). Plone's default content types are 99% based on compositions of behaviors to keep things modular and defined only once. (iirc only the Link CT has a field in its main schema )
If you want to do more customisation than is available with the directives you can add methods to the implementation class that modify/extend the IActuality schemata after they have been loaded for the Item.
The widgets however are only used on 'forms' where you can add or edit the content item. These form objects default to implementations that run over the fields defined in the schema for an item, but you can override both Add and/or Edit forms (see for example this thread [Solved] Behavior IPublication.expires - How to change the default value of "required" Attribute - #6 by 1letter or Plone 6 classic custom add/edit form)
The forms, directives and ZCA hook in points are mostly defined by z3c.form, the forms framework used (and different from Archetypes).