CKEditor 5 - writer.setAttribute('title', ...) on img element doesn't work

Viewed 582

I am creating a plugin for CKEditor 5, and I can't figure out how to set the title attribute on an <img> element using writer.setAttribute('title', ...).

I have tried stuff like schema.extend but to no avail. The thing is, code works flawlessly when operating on the alt attribute.

Am I missing something?

My plugin code:

const ButtonView = require('@ckeditor/ckeditor5-ui/src/button/buttonview').default;
const imageIcon = require('@ckeditor/ckeditor5-core/theme/icons/low-vision.svg').default;

export default class ImageTextTitle extends Plugin {

    init() {
        const editor = this.editor;

        editor.ui.componentFactory.add('imageTextTitle', locale => {
            const view = new ButtonView(locale);

            view.set({
                label: 'Insert image title',
                icon: imageIcon,
                tooltip: true
            });

            view.on('execute', () => {
                const newTitle = prompt('New image title');
                const selection = editor.model.document.selection;
                const imageElement = selection.getSelectedElement();

                if (newTitle !== null) {
                    editor.model.change(writer => {
                        writer.setAttribute('title', newTitle, imageElement);
                    });
                }
            });

            return view;
        });
    }
}
0 Answers
Related