diff --git a/packages/block-library/src/image/editor.scss b/packages/block-library/src/image/editor.scss
index e1721928362149..934682ed91b7de 100644
--- a/packages/block-library/src/image/editor.scss
+++ b/packages/block-library/src/image/editor.scss
@@ -62,13 +62,6 @@ figure.wp-block-image:not(.wp-block) {
left: 50%;
transform: translate(-50%, -50%);
}
-
- // When the Image block is linked,
- // it's wrapped with a disabled tag.
- // Restore cursor style so it doesn't appear 'clickable'.
- > a {
- cursor: default;
- }
}
// This is necessary for the editor resize handles to accurately work on a non-floated, non-resized, small image.
diff --git a/packages/block-library/src/image/image.js b/packages/block-library/src/image/image.js
index ae5f749fff3b5f..64eb03adedb32b 100644
--- a/packages/block-library/src/image/image.js
+++ b/packages/block-library/src/image/image.js
@@ -83,9 +83,29 @@ const scaleOptions = [
},
];
-const disabledClickProps = {
- onClick: ( event ) => event.preventDefault(),
- 'aria-disabled': true,
+// If the image has a href, wrap in an tag to trigger any inherited link element styles.
+const ImageWrapper = ( { href, children } ) => {
+ if ( ! href ) {
+ return children;
+ }
+ return (
+ event.preventDefault() }
+ aria-disabled={ true }
+ style={ {
+ // When the Image block is linked,
+ // it's wrapped with a disabled tag.
+ // Restore cursor style so it doesn't appear 'clickable'
+ // and remove pointer events. Safari needs the display property.
+ pointerEvents: 'none',
+ cursor: 'default',
+ display: 'inline',
+ } }
+ >
+ { children }
+
+ );
};
export default function Image( {
@@ -653,25 +673,31 @@ export default function Image( {
if ( canEditImage && isEditingImage ) {
img = (
-
- setAttributes( imageAttributes )
- }
- onFinishEditing={ () => {
- setIsEditingImage( false );
- } }
- borderProps={ isRounded ? undefined : borderProps }
- />
+
+
+ setAttributes( imageAttributes )
+ }
+ onFinishEditing={ () => {
+ setIsEditingImage( false );
+ } }
+ borderProps={ isRounded ? undefined : borderProps }
+ />
+
);
} else if ( ! isResizable ) {
- img = { img }
;
+ img = (
+
+ { img }
+
+ );
} else {
const numericRatio = aspectRatio && evalAspectRatio( aspectRatio );
const customRatio = numericWidth / numericHeight;
@@ -774,7 +800,7 @@ export default function Image( {
} }
resizeRatio={ align === 'center' ? 2 : 1 }
>
- { img }
+ { img }
);
}
@@ -788,14 +814,7 @@ export default function Image( {
{ /* Hide controls during upload to avoid component remount,
which causes duplicated image upload. */ }
{ ! temporaryURL && controls }
- { /* If the image has a href, wrap in an tag to trigger any inherited link element styles */ }
- { !! href ? (
-
- { img }
-
- ) : (
- img
- ) }
+ { img }
{ showCaption &&
( ! RichText.isEmpty( caption ) || isSelected ) && (