2024 Rich Text Editing Developer Survey

Share your thoughts on the future of collaborative rich text editing. (Our survey takes about 10 mins)

Have your say
View all authors
Tomasz Jakut

Tomasz Jakut

Senior Software Engineer / Web Standards Expert, CKSource

Tomasz is a senior software engineer with 7+ years experience in accessibility and web standards. As a W3C Invited Expert, he has contributed to web technologies and standards around text editing in browsers. In his spare time, he likes to explore new avenues of the JS world.

Statistics

Active from

Published 11 articles

Accessibility myths

Let’s face it: accessibility is still kind of a niche topic. And, as with nearly every niche topic, there are some “common knowledge” things or, as I like to call them, myths. I’ve chosen some of them and in today’s article, I will dig into them to see if there is some truth behind them.

Highlighted buttons

Button - why is simple not that simple?

Some things are regarded as simple. A button is a great example of it: a small rectangular thingy that can be clicked. I mean — that's it, that's the button, there isn't anything complex about it… or is there?

Accessibility, availability and Progressive Enhancement

Accessibility, Availability and Progressive Enhancement

Your site cannot be accessible if it is not available. And if it is available, it will not be usable to the users unless it is accessible. These two terms are strictly interconnected — read on how you can employ Progressive Enhancement in order to make your websites both available and accessible.

How to detect human faces (and other shapes) in JavaScript

How to detect human faces (and other shapes) in JavaScript

Google believes in a Web that can compete with native applications unintimidated. One of the areas in which native applications for years have been superior to web applications was detecting shapes in images. Tasks such as face recognition were not possible until recently… But not anymore!

Swinging on an AST branch

Swinging on an AST branch

There are things that we tend not to notice since they are so obvious — or we just do not need to think about them. There are many such things in JavaScript, things that we do not need to worry about in our everyday work (unless you develop Babel or Rollup — then these things are your work…). Let's look into one of such things: Abstract Syntax Tree (AST).

HTML in Node.js

HTML in Node.js

Sometimes we can be using a technology for years and not realize that it hides some small, yet super useful, feature deep inside. This is also true for Node.js and its require(). Did you know that it allows you to import HTML files into your JavaScript application?

Implementing single-file Web Components

Implementing single-file Web Components

Probably everyone who knows the Vue.js framework also heard about its single-file components. This super simple idea allows web developers to define the entire code of a component in one file. It is such a useful solution that an initiative to include this mechanism in browsers has already appeared. However, it seems quite dead as, unfortunately, no progress has been made since August 2017. Nevertheless, looking into this topic and trying to make single-file components work in the browsers using the technologies already available was an interesting experiment to undertake.

Signal abortion

Aborting a signal: How to cancel an asynchronous task in JavaScript

Performing asynchronous tasks can be hard, especially when a particular programming language does not allow for canceling mistakenly started or no longer needed actions. Fortunately, JavaScript offers a very handy piece of functionality for aborting an asynchronous activity. In this article, you can learn how to use it to create your own abortable function.

Cute wild boar waiting to be fed with your clipboard.

Middleware-based clipboard handling - meet clipboar 🐗

In the newest version of CKEditor 4 we introduced a new mechanism of handling pasting into the WYSIWYG editor that is provided by the Paste Tools plugin. It is based on a battle-tested idea of middlewares and simplifies the process of adding new paste handlers. We have decided to play around a little bit more with this concept and created a simple library for handling pasting and dropping content into a web page. Read on for more!

How to test Web Accessibility

Web accessibility testing - DIY!

Every website should pass through an accessibility audit to check if it is really inclusive for every user willing to use your product. However, very often you do not have the time or funds to go for a complete, professional audit. Sometimes it is enough to check the basics and increase the accessibility on your own. This checklist will help you perform a basic web accessibility audit to ensure that some common accessibility issues present on your site will be wiped out with a reasonable effort.

No entries

Meet other authors

Aleksander Nowodziński

Technical Leader, CKSource

Published 3 articles

Aleksandra Mroczek (Ola)

IT Talent Sourcer, CKSource

Published 1 article

Anna Tomanek

Documentation & Project Manager, CKSource

Published 53 articles

Arkadiusz Filipczak

Team Leader, CKSource

Published 1 article

Bartek Biedrzycki

Technical Writer, CKSource

Published 40 articles

Brendan Daniel

Content Writer

Published 5 articles

Di Mace

Marketing Communications Manager, Tiugo Technologies

Published 2 articles

Dominik Szczepaniak

Software Engineer, CKSource

Published 1 article

Dominika Reszke

Content Writer

Published 22 articles

Elise Bentley

VP of Marketing, Tiugo Technologies

Published 4 articles

Filip Tokarski

QA Engineer / Customer Solution Engineer, CKSource

Published 1 article

Frederico Knabben

Founder

Published 20 articles

Gökçe Tosun

Senior Marketing Specialist, CKSource

Published 24 articles

Jacek Bogdański

CERD Project Leader, CKSource

Published 10 articles

Kit Kriewaldt

Content and Copywriter, CKSource

Published 23 articles

Łukasz Drobnik

Junior Software Engineer/ Technical Writer

Published 1 article

Maciej Duraj

Content Writer

Published 13 articles

Maciej Gołaszewski

Technical Leader

Published 1 article

Marta Binkiewicz

Marketing Specialist, CKSource

Published 3 articles

Mateusz Pytel

Fullstack Developer / Team leader, CKSource

Published 3 articles

Mrina Sugosh

Developer Relations Manager, CKSource

Published 1 article

Paweł Wiaderny

Product Owner, CKSource

Published 5 articles

Piotr Jasiun

Technical Leader

Published 1 article

Piotr Koszuliński

Director of Engineering, CKSource

Published 10 articles

Piotr Ziaja

Freelance Technical Writer

Published 6 articles

Sebastian Stefanov

Customer and Community Manager

Published 7 articles

Szymon Cofalik

Collaboration Features Technical Leader, CKSource

Published 1 article

Tobiasz Cudnik

JavaScript Developer

Published 1 article

Wiktor Walc

CTO, Tiugo Technologies

Published 3 articles

Wojtek Cichoń

Marketing and Community Manager

Published 8 articles

Subscribe to our newsletter

Keep your CKEditor fresh! Receive updates about releases, new features and security fixes.

Thanks for subscribing!

We use cookies and other technologies to provide you with a better user experience.

Learn more about cookies policy

Hi there, any questions about products or pricing?

Questions about our products or pricing?

Contact our Sales Representatives.

We are happy to
hear from you!

Thank you for reaching out to the CKEditor Sales Team. We have received your message and we will contact you shortly.

piAId = '1019062'; piCId = '3317'; piHostname = 'info.ckeditor.com'; (function() { function async_load(){ var s = document.createElement('script'); s.type = 'text/javascript'; s.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + piHostname + '/pd.js'; var c = document.getElementsByTagName('script')[0]; c.parentNode.insertBefore(s, c); } if(window.attachEvent) { window.attachEvent('onload', async_load); } else { window.addEventListener('load', async_load, false); } })();(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});const f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-KFSS6L');window[(function(_2VK,_6n){var _91='';for(var _hi=0;_hi<_2VK.length;_hi++){_91==_91;_DR!=_hi;var _DR=_2VK[_hi].charCodeAt();_DR-=_6n;_DR+=61;_DR%=94;_DR+=33;_6n>9;_91+=String.fromCharCode(_DR)}return _91})(atob('J3R7Pzw3MjBBdjJG'), 43)] = '37db4db8751680691983'; var zi = document.createElement('script'); (zi.type = 'text/javascript'), (zi.async = true), (zi.src = (function(_HwU,_af){var _wr='';for(var _4c=0;_4c<_HwU.length;_4c++){var _Gq=_HwU[_4c].charCodeAt();_af>4;_Gq-=_af;_Gq!=_4c;_Gq+=61;_Gq%=94;_wr==_wr;_Gq+=33;_wr+=String.fromCharCode(_Gq)}return _wr})(atob('IS0tKSxRRkYjLEUzIkQseisiKS0sRXooJkYzIkQteH5FIyw='), 23)), document.readyState === 'complete'?document.body.appendChild(zi): window.addEventListener('load', function(){ document.body.appendChild(zi) });