<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Martin Yovchevski]]></title><description><![CDATA[Martin Yovchevski]]></description><link>https://martinyovchevski.hashnode.dev</link><image><url>https://cdn.hashnode.com/uploads/logos/6ae62ea70cad3544abed2e8e/93bf7955-2e52-4ab5-8ab5-68f4e2dafdda.png</url><title>Martin Yovchevski</title><link>https://martinyovchevski.hashnode.dev</link></image><generator>RSS for Node</generator><lastBuildDate>Sat, 07 Nov 2026 11:09:51 GMT</lastBuildDate><atom:link href="https://martinyovchevski.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[A More Accessible Evidence Card for Classroom Text Review]]></title><description><![CDATA[An illustrative HTML example for education tools, with visible labels, context, privacy and human review.]]></description><link>https://martinyovchevski.hashnode.dev/a-more-accessible-evidence-card-for-classroom-text-review</link><guid isPermaLink="true">https://martinyovchevski.hashnode.dev/a-more-accessible-evidence-card-for-classroom-text-review</guid><category><![CDATA[Accessibility]]></category><category><![CDATA[education]]></category><category><![CDATA[HTML]]></category><dc:creator><![CDATA[Martin Yovchevski]]></dc:creator><pubDate>Mon, 02 Nov 2026 22:11:14 GMT</pubDate><content:encoded><![CDATA[<blockquote>
<p>Disclosure: This article was generated with AI and was not reviewed by Martin Yovchevski before publication. Martin is a co-founder of <a href="https://www.unplag.bg/">Unplag.bg</a>.</p>
</blockquote>
<p>A teacher reviewing a text match needs more than a coloured highlight. They need to know what is being compared, where the passages came from, and what the signal does—and does not—mean. The interface also needs to be understandable without relying on colour alone.</p>
<p>Here is a small, fictional HTML example for teams designing educational review tools. It is an illustration, not a claim about Unplag’s interface or a ready-to-deploy component.</p>
<h2>Start with visible labels</h2>
<pre><code class="language-html">&lt;article aria-labelledby="example-title"&gt;
  &lt;h2 id="example-title"&gt;Example passage for review&lt;/h2&gt;
  &lt;p&gt;&lt;strong&gt;Status:&lt;/strong&gt; Needs human review&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;Source:&lt;/strong&gt; Fictional sample for demonstration&lt;/p&gt;

  &lt;section aria-labelledby="student-excerpt"&gt;
    &lt;h3 id="student-excerpt"&gt;Student text — fictional&lt;/h3&gt;
    &lt;blockquote&gt;Rainwater can be collected for a school garden.&lt;/blockquote&gt;
  &lt;/section&gt;

  &lt;section aria-labelledby="source-excerpt"&gt;
    &lt;h3 id="source-excerpt"&gt;Source text — fictional&lt;/h3&gt;
    &lt;blockquote&gt;Rainwater can be collected for a school garden.&lt;/blockquote&gt;
  &lt;/section&gt;

  &lt;details&gt;
    &lt;summary&gt;What does this example show?&lt;/summary&gt;
    &lt;p&gt;The passages match. A match alone does not establish
       authorship, intent, or a breach of a rule.&lt;/p&gt;
  &lt;/details&gt;
&lt;/article&gt;
</code></pre>
<p>The sample uses a visible status label, headings and a native disclosure control. A real product would need actual source information where available, enough surrounding context for a fair comparison, and a way for authorised reviewers to inspect citations. These snippets are invented and are not evidence about a real student.</p>
<h2>Colour can help, but should not carry the message alone</h2>
<p>A red border might attract attention, but it should not be the only indication of status. <a href="https://www.w3.org/WAI/WCAG22/Understanding/use-of-color.html">W3C’s explanation of WCAG 2.2 criterion 1.4.1</a> recommends providing another visible cue, such as text or shape. This criterion is only one part of accessibility; it does not certify a complete interface.</p>
<p>Before using any component, test it with a keyboard, screen readers and the browsers used by your teachers. Check contrast, reading order and the clarity of its labels. Protect student data and show excerpts only to people authorised to see them.</p>
<h2>Keep the decision human</h2>
<p>A matching passage may be a quotation, common wording or something that needs closer attention. An AI-writing indicator can be wrong and does not establish authorship. <a href="https://www.unplag.bg/en/faq">Unplag’s FAQ</a> describes its AI indicator as a prompt for further review, with the final decision left to an educator.</p>
<p>Teachers, lecturers and education developers who want to discuss practical workflows can reach the Unplag.bg team at <a href="mailto:office@unplag.info">office@unplag.info</a>.</p>
]]></content:encoded></item><item><title><![CDATA[A Small AI-Use Disclosure Validator for Classroom Tools]]></title><description><![CDATA[A JavaScript example for checking AI-use disclosures in classroom tools, with limitations and teacher-led judgment.]]></description><link>https://martinyovchevski.hashnode.dev/a-small-ai-use-disclosure-validator-for-classroom-tools</link><guid isPermaLink="true">https://martinyovchevski.hashnode.dev/a-small-ai-use-disclosure-validator-for-classroom-tools</guid><category><![CDATA[JavaScript]]></category><category><![CDATA[education]]></category><category><![CDATA[Artificial Intelligence]]></category><dc:creator><![CDATA[Martin Yovchevski]]></dc:creator><pubDate>Mon, 02 Nov 2026 17:03:14 GMT</pubDate><content:encoded><![CDATA[<blockquote>
<p>Disclosure: This article was generated with AI and was not reviewed by Martin Yovchevski before publication. Martin is a co-founder of Unplag.bg.</p>
</blockquote>
<p>A teacher wants to ask students whether they used an AI tool and, if so, what kind of help they sought. A developer building that form faces a small but important question: how can we ask for useful information without turning a missing answer into an accusation?</p>
<p>The following example checks only whether a declaration is complete. It does <strong>not</strong> detect AI writing, verify a student’s answer, or decide whether a student broke a rule. Teachers and schools should decide the wording and permitted uses before building a form.</p>
<h2>A minimal example</h2>
<p>This JavaScript function accepts a yes/no answer, a fixed list of purposes, and a yes/no answer about whether the student reviewed the output. It does not require a name, a prompt, or the student's essay.</p>
<pre><code class="language-js">const allowedPurposes = new Set([
  'brainstorming',
  'feedback',
  'proofreading',
  'other',
]);

function validateDisclosure(input) {
  const errors = [];

  if (input.usedAi !== true &amp;&amp; input.usedAi !== false) {
    errors.push('Choose whether AI was used.');
  }

  if (input.usedAi === true) {
    if (!Array.isArray(input.purposes) || input.purposes.length === 0) {
      errors.push('Choose at least one purpose.');
    } else if (!input.purposes.every(purpose =&gt; allowedPurposes.has(purpose))) {
      errors.push('Choose only the available purposes.');
    }

    if (typeof input.reviewed !== 'boolean') {
      errors.push('Choose whether you reviewed the output.');
    }
  }

  return errors;
}
</code></pre>
<p>For example, <code>{ usedAi: true, purposes: ['feedback'], reviewed: false }</code> is a complete declaration: the form accepts “no” as a complete answer, even though the output was <strong>not</strong> reviewed. The form can prompt a conversation rather than silently treating “false” as misconduct.</p>
<p>A declaration with <code>usedAi: true</code> and no purpose returns an error. A declaration with <code>usedAi: false</code> does not need AI-use details. These cases, the unanswered case, an unknown purpose, and a missing review answer were checked locally using six small examples.</p>
<h2>What the code does not do</h2>
<p>This is a standalone validation example, not a finished form or a production system. It has no storage, submission endpoint, authentication or accessibility interface. Before real use, the institution must decide how answers are collected, protected, retained and accessed, and offer an accessible alternative when needed. Avoid collecting prompts, personal information or student work unless there is a clear and authorised reason.</p>
<p>A complete declaration is not proof of independent work, and an incomplete declaration is not proof of cheating. Similarly, AI-writing indicators can be wrong. Unplag.bg describes its indicator as a prompt for further review, with the final judgment left to the educator: <a href="https://www.unplag.bg/en/faq">https://www.unplag.bg/en/faq</a></p>
<p>UNESCO’s guidance describes a human-centred and age-appropriate approach to generative AI in education: <a href="https://www.unesco.org/en/articles/guidance-generative-ai-education-and-research">https://www.unesco.org/en/articles/guidance-generative-ai-education-and-research</a></p>
<p>Teachers, education developers and lecturers who would like to discuss practical workflows can reach the Unplag.bg team at <a href="mailto:office@unplag.info">office@unplag.info</a>.</p>
]]></content:encoded></item><item><title><![CDATA[Designing text-review tools around evidence]]></title><description><![CDATA[A similarity score is easy to display. A review interface is harder to design: it must help a person find relevant evidence, understand its limits, and…]]></description><link>https://martinyovchevski.hashnode.dev/designing-text-review-tools-around-evidence</link><guid isPermaLink="true">https://martinyovchevski.hashnode.dev/designing-text-review-tools-around-evidence</guid><dc:creator><![CDATA[Martin Yovchevski]]></dc:creator><pubDate>Sun, 01 Nov 2026 12:26:25 GMT</pubDate><content:encoded><![CDATA[<p>A similarity score is easy to display. A review interface is harder to design: it must help a person find relevant evidence, understand its limits, and make a decision that can be explained later.</p>
<p>At Unplag.bg, where I work as co-founder and technical lead, this question matters because educational institutions need more than a single number. Here are practical design questions I consider useful when building systems for reviewing documents.</p>
<h2>Keep the source close to the match</h2>
<p>A highlighted passage should make it clear what was compared and where the corresponding source can be found. The reviewer needs enough surrounding text to understand a quotation, a reference, or a common phrase. A link to the source is a starting point for inspection, not proof that the passage is inappropriate.</p>
<h2>Preserve the original and expose extraction problems</h2>
<p>Document processing starts before comparison. PDF extraction, formatting, and character encodings can change what a system reads. For Bulgarian, Cyrillic text, mixed scripts, and word forms add practical cases to test. A reviewer should be able to return to the original document when extracted text looks wrong.</p>
<h2>Separate different kinds of evidence</h2>
<p>Text overlap and a signal about possible AI-generated writing answer different questions. Neither should be presented as a definitive conclusion about intent or authorship. Label what each signal measures, explain its limitations, and keep decisions with the people responsible for review.</p>
<h2>Make the review understandable later</h2>
<p>A useful workflow lets an authorised reviewer trace the relevant passages, sources and decisions. This supports consistency without pretending that every case has the same rules. Institutions can then apply their own policies and give students a fair opportunity to respond.</p>
<p>Designing for context is a product choice: it makes the limits of automation visible and gives educators a better basis for judgment. I would be interested in hearing which parts of a document-review workflow are hardest to understand or audit.</p>
<p><a href="https://www.unplag.bg/">Unplag.bg</a> · <a href="https://www.unplag.bg/about-founder">About the author</a></p>
]]></content:encoded></item></channel></rss>