updateElementAttribute(element2, attribute, expression) {
      const value = "" + this.model.store.get(expression);
      if (value === void 0 || value === "undefined") {
        return;
      }
      Logger.debug(`AttributeManager: Updating attribute ${attribute} with ${value}`);
      if (attribute === "class") {
        element2.className = value;
      } else if (attribute === "disabled" || attribute === "checked" || attribute === "selected" || attribute === "readonly") {
        if (value) {
          element2.setAttribute(attribute, "");
        } else {
          element2.removeAttribute(attribute);
        }
      } else {
        element2.setAttribute(attribute, value);
      }
    }
Updates the value of a DOM element's attribute based on the current
state of the model store.

Dynamically handles specific attributes like `class`, `disabled`,
`checked`, `selected`, and `readonly` to ensure they're properly assigned
for Boolean or string values. For other attributes, it assigns the value
directly.

If the value for the given expression can't be resolved from the model store,
a warning is logged to the console.

@param {HTMLElement} element - The DOM element whose attribute is being updated.
@param {string} attribute - The name of the attribute to update.
@param {string} expression - The model store expression to retrieve the value.