void CanvasRenderingContext2D::updateElementAccessibility(const Path& path, Element* element) { element->document().updateStyleAndLayoutIgnorePendingStylesheets(); AXObjectCache* axObjectCache = element->document().existingAXObjectCache(); LayoutBoxModelObject* lbmo = canvas()->layoutBoxModelObject(); LayoutObject* renderer = canvas()->layoutObject(); if (!axObjectCache || !lbmo || !renderer) return; // Get the transformed path. Path transformedPath = path; transformedPath.transform(state().transform()); // Add border and padding to the bounding rect. LayoutRect elementRect = enclosingLayoutRect(transformedPath.boundingRect()); elementRect.move(lbmo->borderLeft() + lbmo->paddingLeft(), lbmo->borderTop() + lbmo->paddingTop()); // Update the accessible object. axObjectCache->setCanvasObjectBounds(canvas(), element, elementRect); }